【发布时间】:2015-02-06 04:30:47
【问题描述】:
首先,我是 stackoverflow 的超级新手(请原谅我丑陋的格式),并且只有几年的编程经验(总共大约 6 个编程课程)
我正在做一个刽子手项目。我选择使用StringBuilder 来处理其中的一些问题。例如,我想检查 char chosenLetter = 'C' 在 StringBuilder chosenWord = new StringBuilder("Ceramics"); 中的索引或索引
理想情况下,我会有一个 for 循环来遍历 StringBuilder 单词“Ceramics”并告诉我索引 0 和 7。我绝对想不通。我试过使用indexOf() 函数,但出于某种原因,如果我这样做了
for (int i = 0; i < chosenWord.length(); i++) {
if (chosenWord.indexOf(chosenLetter, i) != -1) {
System.out.println("This should be a match at index " + i);
}
}
它会打印出例如:
这应该是索引 0 处的匹配项
这应该是索引 1 处的匹配项
这应该是索引 2 处的匹配项
这应该是索引 3 处的匹配项
这应该是索引 4 处的匹配项
这应该是索引 5 处的匹配项
这应该是索引 6 处的匹配项
这应该是索引 7 处的匹配项
这应该是索引 8 处的匹配项
代替
这应该是索引 0 处的匹配项
这应该是索引 7 处的匹配项
任何想法如何去做这件事?谢谢。
再次,对于丑陋的格式感到抱歉。如果有任何关于澄清的问题,我很乐意尝试澄清!
【问题讨论】:
-
那么,
StringBuilder#indexOf是不可能的? -
你根本不明白
chosenWord.indexOf(chosenLetter, i)做了什么。 -
你为什么不直接做 StringBuilder.toString().equals()?看起来在幕后它会非常相似并且可能不太容易出错......
标签: java for-loop arraylist character stringbuilder