以下は、テキストファイルから別の行を配列に入れるコードです。ユーザーに文字列を入力し、続いて配列内の文字列を探し、文字列が配列の要素と等しいかどうかを確認します。そうであれば、それはそうして、どの要素が等しいかを言い、そうでなければそれを見つけることはできないと言います。しかし、このコードでは、入力が配列の要素と同じであることがはっきりとわかるとしても、行が見つからないといっています。ここで間違っているのは何ですか?上==
配列内の文字列を検索しようとしましたが、線形/順次検索は機能しません。
==
作品の代わりに文字列の比較のために、あなたのwhileループの使用でequals
方法を
public static void main(String[] args) throws FileNotFoundException
{
File file = new File("text.txt"); //puts separate lines of file into an array
Scanner text = new Scanner(file);
String[] Array = new String[10];
for (int i = 0; i < 10 && text.hasNextLine(); i++)
{
String line = text.nextLine();
if (line.isEmpty())
{
continue;
}
Array[i] = line;
System.out.printf("Element %d of the array is: %s%n", i, Array[i]);
}
Scanner input = new Scanner(System.in); //performs sequential search based on user input
System.out.println("Type the line you want to find: ");
String line = input.next();
int pos = 0;
boolean found = false;
while (pos < Array.length && !found)
{
if(Array[pos]== line)
{
found = true;
}
else
{
pos++;
}
}
if (found)
{
System.out.println("Found at position: " + pos);
}
else
{
System.out.println("Could not find " + line);
}
}
[Javaで文字列を比較するにはどうすればよいですか?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – Berger