说我有一个字符串可能看起来像:
"RAHDTWUOPO"
我知道我正在寻找的这个词,例如:
"字"
如果我能用"RAHDTWUOPO"这样的字符串组成"WORD",最好的方法是什么
编辑:
由于这个问题不清楚,我认为Id提出了更多细节.我想要达到的目的是找出一个我事先知道的单词是否可以用随机的字母串组成.不确定如何解决这个问题,循环或是否有其他方法.
我脑子里已经想到了一些东西,但我知道这需要付出很多努力,但我会把它放在这里让这个问题更清楚我想要实现的目标.
public class MyLetterObject {
private String letter;
private Boolean used;
public String getText() {
return letter;
}
public void setLetter(String letter) {
this.letter = letter;
}
public Boolean getUsed() {
return used;
}
public void setUsed(Boolean used) {
this.used = used;
}
}
boolean ContainsWord(String Word, String RandomLetterString) {
List<MyLetterObject> MyLetterList = new ArrayList<MyLetterObject>();
for (char ch : RandomLetterString.toCharArray()) {
MyLetterObject mlo = new MyLetterObject();
mlo.setLetter(String.valueOf(ch));
mlo.setUsed(false);
MyLetterList.add(mlo);
}
String sMatch = "";
for (char Wordch : Word.toCharArray()) {
for (MyLetterObject o : MyLetterList) {
if (o.getUsed() == false
&& String.valueOf(Wordch).equals(o.getText())) {
o.setUsed(true);
sMatch = sMatch + String.valueOf(Wordch);
break;
}
}
}
if (sMatch.equals(Word)) {
return true;
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
你可以看到很多努力.Evgeniy Dorofeev的答案要好得多,只是为了找到一个单词是否可以由一个由随机顺序的字母组成的字符串组成.
尝试
boolean containsWord(String s, String w) {
List<Character> list = new LinkedList<Character>();
for (char c : s.toCharArray()) {
list.add(c);
}
for (Character c : w.toCharArray()) {
if (!list.remove(c)) {
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)