如何通过java获取字符串中元素的计数
示例:假设字符串包含(AA、BB、CC),则out put应为3。有人能告诉我如何得到这个结果吗 我试过这样做如何通过java获取字符串中元素的计数,java,Java,示例:假设字符串包含(AA、BB、CC),则out put应为3。有人能告诉我如何得到这个结果吗 我试过这样做 String userValues= "AA,BB,CC" int selecteditems=userValues.length(); 但是我没有得到结果为3。您应该使用: 提示:始终参考,看看他们说了什么,这将为您节省大量的精力和时间 userValues.split(",").length 这应该可以实现您可以使用的技巧 输出 三, 这是java文档 如果值以逗号分隔,则围绕
String userValues= "AA,BB,CC"
int selecteditems=userValues.length();
但是我没有得到结果为3。您应该使用:
提示:始终参考,看看他们说了什么,这将为您节省大量的精力和时间
userValues.split(",").length
这应该可以实现您可以使用的技巧
输出
三,
这是java文档
如果值以逗号分隔,则围绕给定的匹配项拆分此字符串, 那你可以用
string.split(",");
然后获取长度您应该首先用逗号字符分割字符串
String[]split=userValues.split(“,”)代码>
然后使用
int len=split.length
就个人而言,我不喜欢创建临时字符串数组然后计算数组长度的解决方案,因为这样做在性能上是昂贵的
如果性能很重要,请使用此选项
int num = 0;
for (int i = 0;
i < userValues.length();
num += (userValues.charAt(i++) == ',' ? 1 : 0));
/* num holds the occurrences */
更清楚。其他回答建议拆分字符串。这对于短字符串很好,但会使用比需要更多的内存,如果处理长字符串,这可能会影响性能。另一种方法是使用正则表达式匹配要计数的字符串的组成部分:
String s=“AA、BB、CC”;
模式p=Pattern.compile(([A-Z]+,?));
整数计数=0,i=0;
匹配器m=匹配器p;
而(m.find(i)){
计数++;
i=m.end();
}
系统输出打印项次(计数);
您应该拆分,然后查看长度您确定字符串是您需要的吗?真正的问题是什么?(如果是,请接受提到split()
)数组有一个成员length
而不是一个方法length()
是的,我试图快速:)@amoo你在那一行中引起了注意。。。我要报仇。。总有一天数据无法编译,请修复它。字符串[]部分=用户值。拆分(“,”;int长度=parts.length;你是个C程序员,对吗?;)@Marounnaroun你为什么这么认为?因为String x[]
而不是String[]x
:D@MarounMaroun无法理解您的意思您说这对短字符串没问题的任何原因,但是如果您正在处理长字符串,将使用超出必要的内存,这可能会对性能产生影响。split()
操作将创建尽可能多的字符串对象,每个对象都需要分配内存。在Java中,这并不像某些语言那样糟糕,因为Java字符串是不可变的,因此子字符串对象将与从中拆分的字符串共享字符数据。
String userValues= "AA,BB,CC"
String x[]=userValues.split(",");
System.out.println(x.length);
String[] splitedArray = userValues.split(",");
int count = splitedArray.length; //remenber length not length()
public String[] split(String regex)
string.split(",");
int num = 0;
for (int i = 0;
i < userValues.length();
num += (userValues.charAt(i++) == ',' ? 1 : 0));
/* num holds the occurrences */
userValues.split(",").length