我需要计算字符串中的项目数并分别显示每个项目1)--- 2)----但代码无法正常工作,
public static void main(String[] args) {
String forms = "[436,43,4,900,703,483,......]"; << a long list
int counter = 0;
int index =0;
String temp = "";
for(int i=0; i<=forms.length();i++)
{
index = forms.indexOf(",");
temp = forms.substring(0, index+1);
System.out.println(i + ") " + temp);
forms = forms.replace(temp,"");
counter++;
}
System.out.println("Counter" + counter);
}
结果显示代码遍历String但只是中间。它有大约700项。但它显示只有350项。
答案 0 :(得分:2)
问题是replace
执行了替换 - 所有,因此如果temp
多次出现forms
(例如由于重复条目),那么一些条目将被提前删除。 (实际上它可能比这更糟糕:你可以删除一个条目的 part ,例如你同时拥有3,
和123,
,并导致奇怪的合并。)< / p>
最小修复是免除replace
并使用substring
:
forms = forms.substring(index+1);
但我建议您尝试使用split
。
答案 1 :(得分:1)
Sting[] splitString = forms.split(",");
这会将字符串拆分为多个字符串,只要有,
:您可以使用任何其他分隔符进行拆分 - 即: - 说forms.split(":");
然后,您可以通过说splitString[0]
...等等来引用单个(拆分)字符串。
更具体地说,关于你的情况,你将循环遍历结果字符串数组,如下所示:
for (int curr = 0 ; curr < splitString.size(); curr++){
System.out.println(i + ") " + splitString[curr];
}
答案 2 :(得分:1)
public static void main(String[] args) {
String forms = "436,43,4,436,43,43";
String[] parts = forms.split(",");
int counter = parts.length;
System.out.println("Counter" + counter);
}
答案 3 :(得分:1)
你可以使用split.To avoid]和[符号我们可以使用replace
public static void main(String[] args) {
String forms = "[436,43,4,436,43,43,......]";
String[] splitString = forms.split(",");
for(int i=1; i<=splitString.length;i++)
{
System.out.println(i + ") " + splitString[i-1].replace("[", "").replace("]", ""));
}
}
答案 4 :(得分:1)
String forms = "[436,43,4,436,43,44]";
forms=forms.replace("[", "");
forms=forms.replace("]", "");
String resultArray[]=forms.split(",");
for(int i=0; i<resultArray.length;i++)
{
System.out.println(i + ") " + resultArray[i]);
}
System.out.println("Counter" + resultArray.length);