1

私は基本的に以前にチャートにあったアーティストの配列を格納する単純な Java プログラムを書いています。これは、プログラムのこれまでの私のコードです

package searching;

import java.util.*;

public class Searching {
    public static void main(String[] args) {          
        Scanner scanner = new Scanner(System.in);

        String artists[] = {"Rihanna", "Cheryl Cole", "Alexis Jordan", "Katy Perry", "Bruno Mars",
                        "Cee Lo Green", "Mike Posner", "Nelly", "Duck Sauce", "The Saturdays"};

        System.out.println("Please enter an artist...");
        String artist = scanner.nextLine();
    }
}

ユーザーがアーティストの名前を入力し、コードを取得して配列を検索し、その値のインデックスを返すことは可能ですか? もしそうなら、どこから始めればいいのかわからないので、どうすればいいでしょうか... よろしくお願いします!

4

4 に答える 4

5

並べ替えられていない配列では、アーティストを List に入れ、 List.indexOf()を使用することが 1 つのオプションになります。

 List<String> artistsList = Arrays.asList( artists );
 ...
 int index = artistsList.indexOf( artist );

アーティストがソートされている場合は、Arrays.binarySearch()を使用できます。

于 2013-05-21T22:16:39.987 に答える
4

for ループでアーティスト配列をループし、値が値と等しい場合はインデックスを返す必要がありartistます。

    for (int i = 0; i < artists.length; i++) {
        String artistElement = artists[i];
        if (artistElement.equals(artist)) {
            System.out.println(i);
        }
    }

これが私に起こったことです:

Please enter an artist...
Mike Posner
6
于 2013-05-21T22:15:33.373 に答える
3

ユーザーがアーティストの名前を入力し、コードを取得して配列を検索し、その値のインデックスを返すことは可能ですか?

はい、可能です。

どこから始めればよいかわからないので、配列を調べて(おそらくforループを使用して)、artist変数が配列の現在の要素と等しいかどうかを検証できると思います。それらがequalsの場合、配列の要素の現在のインデックスを返すことができます。何も見つからない場合は、処理可能な -1 などのデフォルト値を返し、Artist not foundなどのメッセージを返します。

于 2013-05-21T22:16:10.063 に答える
2

次のようにできます。

int index = -1;

for (int i = 0; i < artists.length; i++) {
    if (artist.equals(artists[i]))
        index = i;
}

if (index == -1)
    System.out.println("Artist not found");
else
    System.out.println("Index of artist: " + index);
}

これは、tieTYT のソリューションほど雄弁ではありませんが、うまく機能します。インデックスは -1 に設定されます。for ループは、各アーティストを配列内の各値と比較します。一致が見つかった場合、インデックスは要素のインデックスに設定されます。

for ループの後、インデックスがまだ -1 の場合、一致するものが見つからなかったことがユーザーに通知されます。それ以外の場合は、適切なアーティストとインデックスが出力されます。

for ループの使用は、配列の内容をスクロールし、要素を特定の値と比較する最も一般的な方法です。artist[i] を呼び出すことにより、配列のすべての要素を入力文字列に対してチェックできます。

于 2013-05-21T22:19:55.340 に答える