示例:假设字符串包含 (AA, BB, CC),那么输出应该是 3。有人能告诉我如何得到这个结果吗?
我试过这样
String userValues= "AA,BB,CC"
int selecteditems=userValues.length();
但我没有得到3的结果。
示例:假设字符串包含 (AA, BB, CC),那么输出应该是 3。有人能告诉我如何得到这个结果吗?
我试过这样
String userValues= "AA,BB,CC"
int selecteditems=userValues.length();
但我没有得到3的结果。
userValues.split(",").length
这应该可以解决问题
你应该使用String#split
:
String[] splitted = userValues.split(",");
int selectedItems = splitted.length;
提示:始终参考文档并查看他们要说的内容,这将为您节省大量精力和时间。
就我个人而言,我不喜欢创建临时字符串数组然后评估数组长度的解决方案,因为这样做在性能方面很昂贵。
如果性能很重要,请改用它
int num = 0;
for (int i = 0;
i < userValues.length();
num += (userValues.charAt(i++) == ',' ? 1 : 0));
/* num holds the occurrences */
但我同意解决方案 [acknowledge Ameoo]
userValues.split(",").length
更清楚。
您可以使用String#split()
String[] separatedValues = userValues.split(",");
int selecteditems = separatedValues.length;
String userValues= "AA,BB,CC"
String x[]=userValues.split(",");
System.out.println(x.length);
输出 3
如果值用逗号分隔,那么您可以使用
string.split(",");
然后得到长度
您应该首先用逗号字符分割字符串。
String[] split= userValues.split(",");
split
然后只需使用获取数组的长度
int len = split.length
其他响应建议拆分字符串。这对于短字符串来说很好,但会使用比必要更多的内存,如果您正在处理长字符串,这可能会对性能产生影响。另一种方法是使用正则表达式来匹配要计算的字符串的组件:
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 );