1
import java.io.File;
import java.util.Scanner;

public class scoresedit {

public static void main(String[] args) throws Exception{
    System.out.println("Reads in a file at the beginning of a loop, displays these top 3 scores by name and their respective score." +
        "\nEnter a new name and score following a prompt. " +
        "\nIf the new name and score exceeds one of the top three scores," +
        "\nplaces the new name in the top three, moving all lower scores down, dropping the lowest score." +
        "\nSaves the results in the file top3Scores.txt."  +
        "\nStops the loop when exit is entered for a name.");
    File r = new File ("top3Scores.txt");
    System.out.println(r);
    String str = readSource (r);
    System.out.println(str);
    String[] strArray = new String[] {str};
    Scanner in = new Scanner(System.in);
    System.out.print("Enter a new name and score or 'exit' to quit:");
    String nameAndScore = in.nextLine();
    String[] nameAndScoreArray = new String[] {nameAndScore};
    String nameAndScoreArray1[] =  nameAndScore.split(" ");
    while (nameAndScore != "exit") {
        if (nameAndScoreArray[1] > strArray[1]) }
    }

private static String readSource(File r) throws Exception{
    Scanner in;
    in = new Scanner (r);
    String str = "";
    while (in.hasNext())
        str += in.nextLine() +"\n";
    in.close();
    return str;
}

}

2 つの配列を比較しようとすると、"The operator > is undefined for the argument type(s) java.lang.String, java.lang.String" というエラーが表示され続け、修正方法がわかりません。コードは完成していません。明らかに、if ステートメントの下にさらに追加していますが、最初にこれを解決したいと考えています。

4

2 に答える 2

6

比較しようとしnameAndScoreArray[1]strArray[1]いるのは文字列です。2 つのチームのスコアが含まれており、スコアが最も高いチームが勝つと想定しているため、スコアが最も高いチームInteger.parseInt(String string)を確認するために使用する必要があります。

if (Integer.parseInt(nameAndScoreArray[1]) > Integer.parseInt(strArray[1]))
于 2013-06-18T22:52:40.663 に答える
4

String演算子<,と比較することはできません。代わりに、 compareTo>を使用する必要があります。

于 2013-06-18T22:52:19.823 に答える