2

フレーズを小文字で出力するために、次のコードを実装しました。

import java.util.Scanner;

public class LowerCase{ 
    public static void main (String[] args) {
        String input, output = "", inter;
        Scanner scan, lineScan;
        scan = new Scanner(System.in); // Scan from the keyboard
        System.out.println("Enter a line of text: ");
        input = scan.nextLine(); // Scan the line of text

        lineScan = new Scanner(input);
        while (lineScan.hasNext()) {
            inter = scan.next();
            output += inter.toLowerCase() + " ";
        }
        System.out.println(output);
    }
}

実装の何が問題なのかわからない! 正常にコンパイルされますが、コードを実行して入力フレーズを入力するとフリーズします。

4

3 に答える 3

2

ループは 1 つのスキャナーで行を待機していますが、別のスキャナーから行を読み取っていますScanner(したがって、無限ループ)。これ

while (lineScan.hasNext()) {
    inter= scan.next();

次のようなものでなければなりません

while (lineScan.hasNext()) {
    inter= lineScan.next();
于 2016-04-23T13:05:35.727 に答える
1

別の方法をお勧めします。

import java.util.*;
public class something
  {
      static Scanner reader=new Scanner(System.in);
      public static void main(String[] args)
      {
          System.out.println("type something (string)");
          String text = reader.next();  // whatever the user typed is stored as a string here
          System.out.println(text);

          System.out.println("type something (int)");
          int num = reader.nextInt();  // whatever the user typed is stored as an int here
          System.out.println(num);

          System.out.println("type something (double)");
          double doub = reader.nextDouble(); // whatever the user typed is stored as double here
          System.out.println(doub);
        }
    }

これは、ユーザー入力を取得する方法のサンプル コードです。

于 2016-04-23T13:15:47.303 に答える
1

出力を達成するために2つのスキャナーオブジェクトは必要ありません。

scan= new Scanner(System.in); //scan from the keyboard
System.out.println("Enter a line of text: ");
input=scan.nextLine(); //scan the line of text


System.out.println(input.toLowerCase());
scan.close();
于 2016-04-23T13:12:24.100 に答える