0

示例:假设字符串包含 (AA, BB, CC),那么输出应该是 3。有人能告诉我如何得到这个结果吗?

我试过这样

String userValues= "AA,BB,CC"
int selecteditems=userValues.length();

但我没有得到3的结果。

4

9 回答 9

7
userValues.split(",").length

这应该可以解决问题

于 2013-10-09T10:00:02.490 回答
3

你应该使用String#split

String[] splitted = userValues.split(",");
int selectedItems = splitted.length;

提示:始终参考文档并查看他们要说的内容,这将为您节省大量精力和时间。

于 2013-10-09T09:59:56.097 回答
3

就我个人而言,我不喜欢创建临时字符串数组然后评估数组长度的解决方案,因为这样做在性能方面很昂贵。

如果性能很重要,请改用它

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

更清楚。

于 2013-10-09T10:06:02.597 回答
1

您可以使用String#split()

String[] separatedValues = userValues.split(",");
int selecteditems = separatedValues.length;
于 2013-10-09T10:00:10.703 回答
1
String userValues= "AA,BB,CC"
String x[]=userValues.split(",");
System.out.println(x.length);

输出 3

于 2013-10-09T10:00:44.477 回答
0
String[] splitedArray = userValues.split(",");
int count = splitedArray.length; //remenber length not length()  

这是java文档拆分

public String[] split(String regex)

围绕给定正则表达式的匹配拆分此字符串。

于 2013-10-09T10:02:14.493 回答
0

如果值用逗号分隔,那么您可以使用

string.split(","); 

然后得到长度

于 2013-10-09T10:02:49.107 回答
0

您应该首先用逗号字符分割字符串。

String[] split= userValues.split(",");

split然后只需使用获取数组的长度

int len = split.length

于 2013-10-09T10:03:46.473 回答
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 );
于 2013-10-09T10:17:04.823 回答