2013-06-18 5 views
0
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; 
} 

} 

Я продолжаю получать ошибку «Оператор» не определен для типов аргументов java.lang.String, java.lang.String «когда я пытаюсь сравнить два массива, и я не знаю, как Исправить это. Код не завершен; очевидно, я добавляю больше в выражении if, но я хочу сначала решить эту проблему.Сравнение массивов в java?

ответ

4

Вы не можете сравнить String с операторами <, >, вместо этого вам необходимо использовать compareTo.

+0

Благодарим вас, программа просит пользователя ввести имя и оценку (например: «John 5»), и я попытался разбить строку на массив, чтобы сравнить счет, введенный пользователем с помощью список баллов, извлеченных из внешнего .txt-файла, есть ли у вас какие-либо рекомендации о том, как сделать что-то подобное? жаль, что я просто прочитал вашу ссылку compareTo, которую вы предоставили, и до сих пор не совсем понимаете. –

+0

Тогда вам нужно использовать этот ответ: http://stackoverflow.com/a/17180327/122207 –

6

Вы пытаетесь сравнить nameAndScoreArray[1] и strArray[1], которые являются строками, я предполагаю, что они содержат множество двух команд и один с самым высоким выигрывает счет, так что вы хотите использовать Integer.parseInt(String string) для того, чтобы увидеть, который один имеет самый высокий балл :

+0

Спасибо, да, я пытаюсь что-то похожее, пользователь вводит имя и оценку (например: «John 5»), и я пытаюсь сравнить оценку, введенную с верхним счетом, который извлекается из внешнего файла .txt с тремя именами и баллами. Затем я попытаюсь заменить верхний балл имени на файл .txt, если оценка будет указана выше. –

+0

* больше * извините typo –

+0

@ M.J.K. если ваш 'String' также содержит буквы, а не только цифры, тогда это не будет работать, вам сначала нужно избавиться от численного значения. См. [This] (http://stackoverflow.com/questions/2338790/get-int-from-string-also-containing-letters-in-java) вопрос. Вы можете редактировать свои комментарии до 5 минут после того, как вы отправили их по почте, просто нажмите «Изменить». –

Смежные вопросы