Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过java获取字符串中元素的计数_Java - Fatal编程技术网

如何通过java获取字符串中元素的计数

如何通过java获取字符串中元素的计数,java,Java,示例:假设字符串包含(AA、BB、CC),则out put应为3。有人能告诉我如何得到这个结果吗 我试过这样做 String userValues= "AA,BB,CC" int selecteditems=userValues.length(); 但是我没有得到结果为3。您应该使用: 提示:始终参考,看看他们说了什么,这将为您节省大量的精力和时间 userValues.split(",").length 这应该可以实现您可以使用的技巧 输出 三, 这是java文档 如果值以逗号分隔,则围绕

示例:假设字符串包含(AA、BB、CC),则out put应为3。有人能告诉我如何得到这个结果吗

我试过这样做

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