我有",yes,,,,,,,,,,,,,"
之类的字符串,表示从15个选项中选择了option2。这里,逗号,
代表一个选项;如果选中它,则会有一些数据代替选项。我需要读取此字符串并获取确切的选项选择值。在上面它应该是option2。我该怎么做?
我在数据库中有15个选项,在这里可以替换选定的数据,并且,
没有被选中。
或者,看另一种方式,有15个字段用逗号分隔。一个字段 - 在该示例中,第二个字段 - 具有非空值;其他人都是空的。如何确定第一个非空的字段?
答案 0 :(得分:1)
尝试String.split(“,”) - 这将返回String []
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split%28java.lang.String%29
public class Split {
public static void main(String [] args) {
String [] options = args[0].split(",",15);
for(int i = 0; i < options.length; i++) {
System.out.printf("option %d = [%s]\n", i, options[i]);
}
}
}
答案 1 :(得分:0)
如果您的String
始终遵循您指定的格式,则可以使用String.split()
。例如,
String[] split = ",yes,,,,,,,,,,,,,".split(",");
System.out.format("The chosen data is in Option %d and is '%s'%n", split.length, split[split.length - 1]);
打印
The chosen data is in Option 2 and is 'yes'
答案 2 :(得分:0)
如果我理解正确,你会得到一串逗号,在两个逗号之间有一些像&#34;是&#34;。你的任务是检索那个单词的索引,即单词前面的逗号(加1)。
首先,选项的编码非常愚蠢,所以如果它由您负责,请更改它。
简单的解决方案是在单词之前计算逗号。
这样的事情会:
String s = ",yes,,,,"
for ( int i = 0 , len = s.length() ; i < len ; i++ )
if ( s.charAt(i) != ',' )
return i+1;
throw new Exception ("No option found");
答案 3 :(得分:0)
好吧,我假设您要将,
上的字符串拆分为:
String[] options = ",yes,,,,,,,,,,,,,".split(",");
String option2 = options[1]; //yields "yes"
但是,为什么不使用更易理解的标记,例如option2=yes
等?
请查看某些库的Apache Commons CLI以支持更好的选项。