次のような文字列があるとします。
「ラフトゥオポ」
探している単語を知っています。たとえば、次のようになります。
"語"
「RAHDTWUOPO」のような文字列で「WORD」を構成できるかどうかを見つけるための最良の方法は何ですか?
編集:
この質問が不明確だったので、私はもっと詳しく説明したいと思いました。私が達成したかったのは、前もって知っていた単語がランダムな文字列から成り立つかどうかを調べることでした。ループを使用するか、他の方法があるかどうか、これについてどうすればよいかわかりませんでした。
私は頭の中ですぐに何かを思いつきましたが、それは大変な努力が必要であることを知っていましたが、私が達成したいことをより明確にするためにここに記載します.
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;
}
}
ご覧の通り大変な努力をしております。Evgeniy Dorofeevの答えは、ランダムな順序で文字で構成された文字列から単語を作成できるかどうかを調べるだけの目的にははるかに優れています。