java检查字符串是否有特定的单词
MyString words
包含一组由\n
分隔的单词(以\n
结尾)。
只有当单词不在字符串中时,代码才会将单词添加到字符串中。这些代码块位于for
循环中,其中w
是要添加的单词
我有
loop: if (w.contains("" + letter)) //This is just to test the words I want to add
{
for (String s : words.split("\n"))
if (w.equals(s))
break loop;
words += w + "\n";
}
及
if (w.contains("" + letter))
{
if (!words.contains("\n"+w+"\n") && words.indexOf(w+"\n") != 0)
words += w + "\n";
}
但两者似乎都有各自的混乱之处。有没有其他方法可以做到这一点,或者哪种方法执行得更快
# 1 楼答案
首先,
if
不是一个循环。因此,没有必要对其进行标记,以便使用标记的断点其次,你的两个代码都没有真正做到,你说你想做的。还有,我不明白你为什么要做这个测试。以及
w
的用途您说:-
w being the word to add
,但您再次表示,如果字符串不在array
中,您将在"\n"
上拆分后添加字符串中的单词。因此,您添加了许多单词,而不仅仅是一个单词。请重新阅读您的帖子,并在必要时进行编辑根据您当前的问题陈述,我将这样处理:
"\n"
上拆分行以获得包含单个单词的数组李>StringBuilder
或StringBuffer
李>StringBuilder
是否已经包含该word
。如果它不包含,则附加它,否则保留它李>StringBuilder
实例李>或者,正如您所说,您也可以使用
ArrayList
来存储您的单词。或者,如果您只想要unique
个单词,您应该使用Set
。那就不需要你做测试了。它自己处理副本:-然后通过迭代其中一个来打印
ArrayList
或Set
# 2 楼答案
如何将单词存储在ArrayList中,并在添加单词之前检查ArrayList是否包含该单词?如果顺序不重要,则使用集合
使用集合会容易得多,当需要显示时,可以将其转换为字符串。例如:
# 3 楼答案
你可以用
它保持了添加单词的顺序
# 4 楼答案
我建议使用列表
# 5 楼答案
//如果您试图在字符串中查找单词/特定单词,此代码肯定会对您有所帮助
公共类findWordFromString{
}//class
# 6 楼答案
我会将您添加的不同单词存储在列表中