2017-03-15 11 views
-4

すべての4,5,6文字の単語を文字列で検索する必要があります。それぞれの単語を見つけたら、その単語が英語の辞​​書に含まれているかどうかを確認するように求められます。配列Javaを使用して文字列から単語を見つける方法は?

私が直面している問題は、どのようにしてjavaにすべての4,5,6文字の単語を見つけることができるかわからないということですか?

彼らは私たちを与えた例は、このようなものです:

String letter = "fourgooddogsswam"; 

int wordSize = 4; 

その後の言葉は次のとおりです。実際に

four 
ourg 
urgo 
rgoo 
good 
oodd 
oddo 
ddog 
dogs 
ogss 
gssw 
sswa 
swam 

、唯一の言葉は4、良い、犬、泳いです。

もう一度、4つの文字のすべてを見つけるために、ループやその性質をどうやって作るのだろうかと思います。どんな助けやヒントも高く評価されます。

ありがとうございます。

+2

スタックオーバーフローはコード作成サービスではありません。あなた自身でこれをコーディングしようとしています。私は、あなたの問題についての調査をしてみることをお勧めします(おそらく、ページの上部にある検索ボックスを試してみてください)、あなた自身でコードを書くことを試みてください。 /あなたのコードに問題が発生した場合は、再度尋ねて、あなたが試したこと、そしてそれがあなたのためにうまくいかなかった理由を説明してください。偉大な疑問や、[最小限の、完全で、検証可能な例](http://stackoverflow.com/)と尋ねる助けについては、[How to Ask](http://stackoverflow.com/help/how-to-ask)を参照してください。ヘルプ/ mcve)。 – bc004346

答えて

2

これは非常に単純なアルゴリズムであり、あなたは基本的なプログラミングの授業を取っている場合は、文字列を分割する必要がより良い方法あなたの宿題に答えるように考えると、使用フォーラムより学ぶために時間がかかる

for(int i = 0; i < letter.length()-4;i++){ 

    fourLetter = letter.substring(i,i+4); 
    //... do whatever you want 
    } 
0

まずありコードの下に使用してサイズ4.Byのあなたは、あなたがファイルから辞書の単語を読み、set<String>に挿入する必要がある文字列の配列は、長さ4

List<String> elementList = new ArrayList<String>(); 

for(int i = 0; i < letter.length()-4;i++){ 

    fourLetter = letter.substring(i,i+4); 
elementList.add(fourLetter); 

    } 

を持つでしょう。

次に、String配列をListに変換し、リストを反復してset.contains(listelement)をチェックすることができます。

+0

'split'は、同じ部分がいくつかの結果に存在するのを防ぐテキストを分割する区切り文字だけを見つけるので、多くのトークンで文字を再利用する必要があるため、ここでは使用できません。あなたのコードは 'abcdef'を' abcd'と 'ef'に分割し、opは' abcd'を 'bcde'' cdef'が望みます。 – Pshemo

+0

@Pshemoどのようにそれを行うことができますか? – Gator

+0

@Gatorその他の回答は、すでにそのような単語(トークン)を生成する方法を示しています。あなたはそれを試しましたか?不明な点がある場合は、その著者に説明を求めてください。 – Pshemo

関連する問題