【发布时间】:2014-06-27 06:41:40
【问题描述】:
我们必须计算具有多个“this”子字符串的给定字符串中“this”的数量。例如。 “你好,这是一个新兵,这是一个老兵,这是这个” 将返回 4。
所以我正在使用:
StringTokenizer stringTokenizer1 = new StringTokenizer(input2);
ArrayList<String> arrayList1 = new ArrayList<String>();
int count=0;
int arrIndex = stringTokenizer1.countTokens();
for (int i = 0; i < stringTokenizer1.countTokens(); i++)
{
arrayList1.add(stringTokenizer1.nextToken());
}
for (String string2 : arrayList1)
{
if (string2.equals(string))
{
count++;
}
}
output1 = count;
System.out.println(output1);
只返回 2 个。
但是,如果int arrindex 被赋值为 stringTokenizer1.countTokens() 并在循环条件下使用,它会给出正确的结果 4。WHY??
注意:使用 JavaSE-1.6
【问题讨论】:
-
您是否调试并检查了正在执行的内容?
-
是的,我已经使用 print 语句进行了调试,因为我是新手
-
来自JavaDoc for
StringTokenizer; StringTokenizer 是一个遗留类,出于兼容性原因保留,但不鼓励在新代码中使用它。 不要使用它。 -
你能给我们一个你的代码的最小可执行示例吗?
-
@Jens 是的,请使用此链接:pastie.org/9329551
标签: java for-loop stringtokenizer