2017-10-08 6 views
-1

私はこのエラーを取得します私は今、スキャナがメソッドとmain()のやりとりの仕方によって実際に混乱しています。誰かが私を正しい方向に向けることができれば、私はこのことに夢中になる5つの方法を書かなければならないので大きな助けになるでしょう。スキャナは/ mainは()

import java.util.Scanner; 
public class AuthoringAssistant { 

public static String scnrMethod() { 

    Scanner scnr = new Scanner(System.in); 
    String userInput = scnr.nextLine(); // userInput scans for text 
    return userInput; 
} 

public static void main(String[] args) {  

    System.out.println("Enter a sample text:"); 
    scnrMethod(); 
    System.out.println(); 
    System.out.println("You entered: " + scnrMethod()); 

    char menuChoice = printMenu(scan); 

    boolean t = true; 

    if (menuChoice == 'q') { 
    System.exit(0); 
    } 
    //else if (menuChoice == 'c') { 
    // System.out.println(); 
    //} 
    //else if (menuChoice == 'w') { 
    // System.out.println(); 
    //} 
    //else if (menuChoice == 'f') { 
    // System.out.println(); 
    //} 
    //else if (menuChoice == 'r') { 
    // System.out.println(); 
    //} 
    //else if (menuChoice == 's') { 
    // System.out.println(); 
    //} 
    else { 
    t = false; 
    } 
    if (t != true) { 
    System.out.print("Input an option: " + menuChoice); 
    } 

} 

public static char printMenu(Scanner scan) {//provides menu for main() 

    System.out.println(); 
    System.out.println("MENU"); 
    System.out.println("c - Number of non-whitespace characters"); 
    System.out.println("w - Number of words"); 
    System.out.println("f - Find text"); 
    System.out.println("r - Replace all !'s"); 
    System.out.println("s - Shorten spaces"); 
    System.out.println("q - Quit\n"); 

    System.out.println("Choose an option:"); 
    char menuChoice = scan.nextLine().charAt(0); 

    return menuChoice;  
} 

//public static int getNumOfNonWSCharacters() { //finds number of non- 
//whitespace characters in the text 
// 
// 
// return ; 
//} 

} 
+1

「スキャン」とは何ですか? – glennsl

+0

メソッド呼び出しの前に変数 'scan'を宣言する必要があります。この場合、次のようになります: 'Scanner scan = new Scanner(System.in);' –

+0

@Frederik Hansen私はそれをスローすると 'スレッド" main "の例外" java.util.NoSuchElementException:No行が見つかりました \t java.util.Scanner.nextLine(Scanner.java:1540)AuthoringAssistant.scnrMethodで \t(AuthoringAssistant.java:8)AuthoringAssistant.mainで \t(AuthoringAssistant.java:18)で ' –

答えて

0

変数宣言がありません。 Scannerを複数の場所で使用しているので、これらのメソッドで同じインスタンスを使用できるようにすることをお勧めします。

import java.util.Scanner; 

public class AuthoringAssistant { 

    private static Scanner scan = new Scanner(System.in); 

    public static String scnrMethod() { 
     String userInput = scan.nextLine(); // userInput scans for text 
     return userInput; 
    } 

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

     System.out.println("Enter a sample text:"); 
     String input = scnrMethod(); 
     System.out.println("You entered: " + input); 

     char menuChoice = printMenu(); 

     boolean t = true; 

     if (menuChoice == 'q') { 
      System.exit(0); 
     } 
     else { 
      t = false; 
     } 
     if (t != true) { 
      System.out.print("Input an option: " + menuChoice); 
     } 

    } 

    public static char printMenu() {// provides menu for main() 

     System.out.println(); 
     System.out.println("MENU"); 
     System.out.println("c - Number of non-whitespace characters"); 
     System.out.println("w - Number of words"); 
     System.out.println("f - Find text"); 
     System.out.println("r - Replace all !'s"); 
     System.out.println("s - Shorten spaces"); 
     System.out.println("q - Quit\n"); 

     System.out.println("Choose an option:"); 
     char menuChoice = scan.nextLine().charAt(0); 

     return menuChoice; 
    } 

} 
関連する問題