簡體   English   中英

使用掃描器類在 Java 中讀取字符串輸入的問題

[英]Issues reading string input in Java with scanner class

說到 Java,我幾乎是一個完全的新手。 我已經涉足了 python 和 VB.net,僅此而已。

我正在嘗試用 java 編寫一個程序,該程序從字面上讀取用戶的輸入並使用以下代碼將其顯示回給他們:

import java.util.Scanner;

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

        String str1;

        System.out.println("Input string: ");

        str1 = input.nextString();

        System.out.println( str1 );
    }
}

我得到了錯誤:

InputTesting.java:13: error: cannot find symbol
        str1 = input.nextString();
                    ^
  symbol:   method nextString()
  location: variable input of type Scanner
1 error

有人可以告訴它為什么不編譯嗎? 謝謝!

input.nextString();

Scanner類中沒有名為nextString方法。 這就是為什么你得到的錯誤cannot find symbol

嘗試

input.nextLine(); // If you're expecting the user to hit enter when done.
input.next(); // Just another option.
import java.util.Scanner;

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

         String str1;

        System.out.println("Input string: ");

            str1 = input.next();

        System.out.println( str1 );
    }
}

您可以使用input.nextXXX() javadoc中詳述的input.nextXXX()之一。 解決編譯器錯誤

在你的情況下

你可以使用input.nextLine(); 得到整行文字。

默認情況下,掃描儀使用的空白分隔符。 但是,如果需要掃描由分隔符分隔的輸入序列,則useDelimiter可用於設置正則表達式分隔符

public static void main(String[] args) {
    try (Scanner input = new Scanner(System.in);) {
        input.useDelimiter(";");
        while (input.hasNext()) {
            String next = input.next();
            if ("DONE".equals(next)) {
                break;
            }
            System.out.println("Token:" + next);
        }
    }
}

輸入

1a;2b;3c;4d;5e;DONE;

產量

Token:1a
Token:2b
Token:3c
Token:4d
Token:5e

掃描十進制和帶符號的數字時要小心,因為掃描是Locale Dependent

您需要使用方法nextLine() 此方法打印整行。 通過使用next() ,它將在您的句子中只打印一個單詞。

// 這就是我管理輸入字符串的解決方案的方式

導入 java.util.Scanner; 公共課回文詞{

public static void main(String[] args) {
    
    //System.out.println("Enter a string: ");
    Scanner input = new Scanner(System.in);
    


     String S = input.next(); 
     String reverseStr = "";
    
    int strLength = S.length();

    for (int i = (strLength - 1); i >=0; --i) {
      reverseStr = reverseStr + S.charAt(i);
    }

    if (S.equals(reverseStr)) {
      System.out.println("Yes");
    }
    else {
      System.out.println("No");
    }

}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM