示例:假设,String包含(AA,BB,CC)然后输出应该是3.可以有人告诉如何获得此结果。
我试过这个
String userValues= "AA,BB,CC"
int selecteditems=userValues.length();
但我没有得到结果为3。
答案 0 :(得分:7)
userValues.split(",").length
这应该可以解决问题
答案 1 :(得分:3)
您应该使用String#split
:
String[] splitted = userValues.split(",");
int selectedItems = splitted.length;
提示:请务必参考docs并查看他们要说的内容,这将为您节省大量的精力和时间。
答案 2 :(得分:3)
就个人而言,我不喜欢创建临时字符串数组的解决方案然后评估数组长度,因为在性能方面所做的一切都很昂贵。
如果表现很重要,请使用此
int num = 0;
for (int i = 0;
i < userValues.length();
num += (userValues.charAt(i++) == ',' ? 1 : 0));
/* num holds the occurrences */
但我同意解决方案[承认Ameoo]
userValues.split(",").length
更清楚。
答案 3 :(得分:1)
您可以使用String#split()
String[] separatedValues = userValues.split(",");
int selecteditems = separatedValues.length;
答案 4 :(得分:1)
String userValues= "AA,BB,CC"
String x[]=userValues.split(",");
System.out.println(x.length);
<强>输出强> 3
答案 5 :(得分:0)
String[] splitedArray = userValues.split(",");
int count = splitedArray.length; //remenber length not length()
这是java doc split
public String[] split(String regex)
的匹配拆分此字符串
答案 6 :(得分:0)
如果值以逗号分隔, 然后你可以使用
string.split(",");
然后得到长度
答案 7 :(得分:0)
首先应该用逗号字符分割字符串。
String[] split= userValues.split(",");
然后使用
获取split
数组的长度
int len = split.length
答案 8 :(得分:0)
其他回复建议拆分字符串。这对于短字符串很好,但是如果处理长字符串,则会使用比必要更多的内存,这可能会对性能产生影响。另一种方法是使用正则表达式来匹配要计数的字符串的组件:
String s = "AA,BB,CC";
Pattern p = Pattern.compile( "([A-Z]+,?)" );
int count = 0, i = 0;
Matcher m = p.matcher( s );
while (m.find( i )) {
count++;
i = m.end();
}
System.out.println( count );