私は1000の文字列を含むArrayListを持っています。私はそのArrayListをループし、単語を見つけ出し、それらから四角形を形成しようとしています。たとえば、次のようにそれが動作しているが、それは、ネストされたループの多くが含まれますし、私は正方形の4×4を形成しようとしています。このインスタンス内のループをハードコーディングしていますパラメータの入力に応じてループを減らしたり、大きくしたりします。
C A R D
A R E A
R E A R
D A R T
。
私は、例えば5x5または6x6などの正方形のサイズで渡す柔軟性を持っていて、それに応じてループを探しています。それをどうやって行うことができますか?
これは単なるループだった場合、私はちょうど整数を渡して、その整数に応じてループします。しかし、私は入れ子になっているので、必要なForループの数は異なるので混乱します。
私が4x4の四角形を形成しているとき、各ループが異なる部分文字列をチェックして正しい正方形を導出するところで4回ループします。 5x5が必要な場合は、チェックを行うために5ループが必要です。私は、多くのForループを作成せずにパラメータ/またはループする方法に応じて減少ループを増やすという問題を解決することを意味します。私はこれに関するいくつかのガイダンスを得ることができますか?
void makeWord(ArrayList<String> arr, int size){ //want to use this size to determine amount of loop
String first, second, third, fourth;
for (int i = 0; i < arr.size(); i++) {
first = arr.get(i);
for (int j = 0; j < arr.size(); j++) {
if(first.substring(1,2).equals(arr.get(j).substring(0,1)) &&
(!first.equals(arr.get(j)))){
second = arr.get(j);
}
else {
second = " ";
}
if (!second.trim().isEmpty()) {
for (int k = 0; k < arr.size(); k++) {
if (first.substring(2, 3).equals(arr.get(k).substring(0, 1)) &&
second.substring(2, 3).equals(arr.get(k).substring(1, 2)) &&
(!first.equals(arr.get(k)) && (!second.equals(arr.get(k))))) {
third = arr.get(k);
} else {
third = " ";
}
}
}
}
}
}
わからないが、どのようにループの整数を渡してからあなたを防ぐネスト。おそらく関連性のない詳細を取り除き、ロジックワイズを達成しようとしているところにあなたの質問を集中させてください。 –
@ArtemioRamirez質問を編集しました。実行されているチェックを削除することは、それらのループのポイントとは何かに関するさらなる質問を開始するだけです。 – ksv99
問題を解決してください。 1つは単語を見つける方法、もう1つは単語を表示する方法です。 –