2015-04-23 38 views
0

只是想知道你們是否可以幫助我解決這個錯誤我一直在嘗試 修復過去一小時左右。必需:沒有參數,找到:字符串

我打電話這段代碼有錯誤的功能:

static Scanner scan = new Scanner(System.in); 
static int xIn, yIn; 
static String name = ""; 
static String input = ""; 

public static void main(String[] args){   
    if(args.length < 2){ 
     System.out.println("Not enough arguments. Temination."); 
     System.exit(0); 
    } 
    else if(args.length > 2){ 
     System.out.println("Too many arguments. Termination."); 
     System.exit(0); 
    } 
    BottyBot.Test(Integer.parseInt(args[0]), Integer.parseInt(args[1])); 
    BottyBot.Greet(); 
} 

而且BottyBot.Greet()函數是:

public static void Greet(){ 
    name = scan.nextLine("Hello, what is your name? "); 
    do{ 
     input = scan.nextLine("Would you like to order some boots, " + name + "? (y/n) "); 
     if(input == "y"){ 
      System.out.println("Great! Let's get started."); 
      break; 
     } 
     else if(input == "n"){ 
      System.out.println("Come back next time, " + name + "."); 
      System.exit(0); 
     } 
     else{ 
      System.out.println("Invalid response. Try again."); 
     } 
    } 
    while(true); 
} 

我得到兩個錯誤的兩個掃描儀線。具體而言,這是說

error: method nextLine in class Scanner cannot be applied to given types; 
    next = scan.nextLine("Hello, what is your name? "); 
      ^
required: no arguments 
found: String 
reason: actual and formal argument lists differ in length 

如果有人能指出我在做什麼錯了,這將是偉大的!謝謝!

+0

'Scanner.nextLine()'不帶參數。你提供了一個參數。你在做什麼是錯誤的,編譯器告訴你。 – Kayaman

+0

由於錯誤清楚地說..有沒有參數'nextLine()' –

回答

4

你應該這樣寫,因爲scanner.nextLine()方法沒有考慮

System.out.println("Hello, what is your name? "); 
name = scan.nextLine(); 

印刷部分由System.out.println()完成,掃描部分由scanner.nextLine()做過任何說法。


error: method nextLine in class Scanner cannot be applied to given types; 
next = scan.nextLine("Hello, what is your name? "); 
     ^
required: no arguments 
found: String 
reason: actual and formal argument lists differ in length 

此消息給你一個明確的提示。 它表示actual and formal argument lists differ in length。所以這裏的參數表示方法參數,要求被提及爲no arguments,取而代之的是String,即「你好,你叫什麼名字?」。

+0

嘿謝謝你,沒有意識到這是一個小小的錯誤。一直工作數小時試圖修復它! –

+0

您的歡迎。從錯誤你會得到提示。如果它回答你的問題,那麼你可以[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)它。 –

0

Scanner.nextLine()不帶任何參數,它只是讀一行。

您可以使用此:

System.out.println("Hello, what is your name?"); 
name = scan.nextLine(); 

而且

System.out.println("Would you like to order some boots, " + name + "? (y/n) "); 
input = scan.nextLine(); 
1

我想你混淆了Scanner做什麼。這讓我想起QBasic中的input函數,儘管我可能不正確。

由於錯誤狀態,nextLine()方法不接受任何參數,但您傳遞一個字符串給它。根據我的理解,你的意圖是打印控制檯並從中讀取。要做到這一點,您需要將您的掃描儀語句分成兩部分。鑑於這種:

name = scan.nextLine("Hello, what is your name? "); 

把它變成:

System.out.println("Hello, what is your name?"); //Print to console. 
name = scan.nextLine();        //Read from it. 

這同樣適用於其他。

相關問題