作成中のコードに行き詰まっています。私のIDEはEclipseで、そのデバッグ機能を使用して各行で何が起こっているかを追跡すると、完全に出力されます。ただし、「実行」プロジェクトをクリックすると、空白の画面が出力されます。
public static void compareInterests(Client[] clientDetails)
{
int interests = 0;
for (int p = 0; p < numberOfClients; p++)
{
for (int q = 0; q < numberOfClients; q++)
{
String a = clientDetails[p].getClientInterests();
String b = clientDetails[q].getClientInterests();
int count = 0;
while (count < a.length())
{
if (a.charAt(count) == b.charAt(count))
interests++;
count++;
}
if ((interests >= 3) && (clientDetails[p].getClientName() != clientDetails[q].getClientName()))
System.out.print (clientDetails[p].getClientName() + " is compatible with " + clientDetails[q].getClientName());
interests = 0;
}
}
}
このコードは、クライアントの名前とクライアントの興味に関する情報を含むオブジェクト配列をインポートするように設計されています。クライアントの関心は「01010」の形式で保存されます。1 はそのアクティビティに関心があることを意味し、0 は関心がないことを意味します。
私のコードは、すべてのクライアントの文字列の各文字を他のすべてのクライアントの文字列と比較し、同じ名前ではなく、3 つ以上の共通の関心を持つすべてのクライアントの結果を出力します。
このコードを Java のデバッガーで実行すると、正常に出力されますが、[プロジェクトの実行] または [コンパイル] をクリックすると、空白の画面が表示されます。
何か案は?
編集:セクションを変更しました
clientDetails[p].getClientName() != clientDetails[q].getClientName()
に
clientDetails[p].getClientName().equals(clientDetails[q].getClientName()
以下の回答の人々が示唆したように。ただし、まだ空白の出力が得られます。その他のアイデア (また、Eclipse のデバッガーがこれを無視してすべてを正しく出力したのはなぜですか?)
サンプル入力は次のようになります。
Sophia Candappa F 23 00011
Jade Clarke F 25 00011
性別と年齢 (F と 23/25) は別のセクションで取り上げているので無視してください。
編集2:
さて、さらに見知らぬ人になりました!興味 = 0 の後にこのコードを追加すると、次のようになります。
interests = 0;
System.out.println("");
私はそれから出力を取得します(ループステートメントで誰が誰と一致するかによって、結果、改行、結果、次に4つの改行、結果を取得する可能性があるため、ひどくフォーマットされた出力が得られます。その理由が本当にわかりません行は出力を提供します。