如何在Java中过滤空字符串
我是Java新手,正在使用以下类:如何在Java中过滤空字符串,java,Java,我是Java新手,正在使用以下类: import java.lang.management.ManagementFactory; import java.lang.management.ThreadMXBean; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; publ
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadMXBean;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
public class Utils {
public static String[] fitlerNullString(String[] array) {
List<String> list = new ArrayList<String>();
for(String c : array) {
if(c != null && c.length() > 0) {
list.add(c);
}
}
return list.toArray(new String[list.size()]);
}
}
请引导我。我哪里出错了?请再次检查我的代码,因为仍然没有结果。我认为您应该使用Guava库来处理
字符串
对象
对于您的问题,这里有一个简单的答案:Strings.isNullOrEmpty(stringObject)
如果你不喜欢番石榴,那里有阿帕切康姆斯和更多。只是不要重新发明轮子。你也可以这样检查,使用 不需要额外的图书馆
你可以使用“番石榴先决条件” 您必须知道,当启动Java应用程序时,系统数组args由jvm提供,不包含空字符串或空字符串。总之,通常可以通过以下方式过滤阵列:
List<String> argsList = new LinkedList<String>(Arrays.asList(args));
argsList.removeAll(Arrays.asList("", null));
List argsList=newlinkedlist(Arrays.asList(args));
argsList.removeAll(Arrays.asList(“,null));
像这样的东西怎么样-
public static String[] fitlerNullString(final String[] array) {
// Return the original array if null or empty
if(array == null || array.length == 0) {
return array;
}
// Create a new array with the size of the passed array
String[] strings = new String[array.length];
// For keeping track of indices of the new array
int ctr = 0;
for(int i = 0; i < array.length; i++) {
// If null or empty continue to the next item if any
if(array[i] == null || array[i].isEmpty()) {
continue;
}
// Otherwise add and increase the counter
strings[ctr] = array[i];
ctr ++;
}
// return the array
return Arrays.copyOfRange(strings, 0, ctr);
}
公共静态字符串[]fitlerNullString(最终字符串[]数组){
//如果为null或为空,则返回原始数组
if(array==null | | array.length==0){
返回数组;
}
//使用传递的数组的大小创建一个新数组
String[]strings=新字符串[array.length];
//用于跟踪新数组的索引
int ctr=0;
for(int i=0;i
测试:
String[]vals=新字符串[3];
VAL[0]=“苹果”;
VAL[1]=null;
VAL[2]=“香蕉”;
字符串a[]=fitlerNullString(VAL);
对于(int j=0;j
fitlerNullString()代码应该可以正常工作,您传递的参数可能不包含空值。在执行java MainClass args
时,您是否真的通过命令行提供了任何参数(args)?如果返回的是空数组,则表明每个参数都是空的或null。你正在向应用程序传递什么参数?你必须给出一些参数。。。因此,它将筛选properlyno我不会通过命令行在args中传递任何解释问题的内容,我希望得到这样的结果,如果(cmd.haspoption(“a”){audioCOM=cmd.getOptionValue(“com”);},但cmd返回null@user2971145Wat是parser.parse(选项,参数)sajal我检查你的代码结果是否相同,没有返回我想要的内容,比如if(cmd.haspoption(“acom”){audioCOM=cmd.getOptionValue(“com”);}if(cmd.haspoption(“bcom”){commandCOM=cmd.getOptionValue(“command”);}
List<String> argsList = new LinkedList<String>(Arrays.asList(args));
argsList.removeAll(Arrays.asList("", null));
public static String[] fitlerNullString(final String[] array) {
// Return the original array if null or empty
if(array == null || array.length == 0) {
return array;
}
// Create a new array with the size of the passed array
String[] strings = new String[array.length];
// For keeping track of indices of the new array
int ctr = 0;
for(int i = 0; i < array.length; i++) {
// If null or empty continue to the next item if any
if(array[i] == null || array[i].isEmpty()) {
continue;
}
// Otherwise add and increase the counter
strings[ctr] = array[i];
ctr ++;
}
// return the array
return Arrays.copyOfRange(strings, 0, ctr);
}
String[] vals = new String[3];
vals[0] = "Apple";
vals[1] = null;
vals[2] = "Banana";
String a[] = fitlerNullString(vals);
for(int j = 0; j < a.length; j++){
System.out.print(a[j] + "\t");
}