1

ユーザーから10文字を取得し、逆の順序で出力する必要がある次のコードがあります。のこの 1 つの構文エラーを乗り越えることができないようですScanner。一度に 1 文字ずつ入力するにはどうすればよいですか? これが私がこれまでに持っているものです:

import java.util.Scanner;

public class ReverseOrder
{
   //-----------------------------------------------------------------
   //  Reads a list of char from user and prints in reverse.
   //-----------------------------------------------------------------
   public static void main (String[] args)
   {
      Scanner scan = new Scanner (System.in);

      char[] letters = new char[10];

      System.out.println ("The size of the array: " + letters.length);
      for (int index = 0; index < letters.length; index++)
      {
         System.out.print ("Enter number " + (index+1) + ": ");
         letters[index] = scan.nextchar(); //doesnt like this line
      }

      System.out.println ("The numbers in reverse order:");

      for (int index = letters.length-1; index >= 0; index--)
         System.out.print (letters[index] + "  ");
   }
}
4

4 に答える 4

2

ループを使用せずに逆の順序で出力することもできます:

System.out.println("The numbers in reverse order:");
System.out.println(new StringBuilder(new String(letters)).reverse())
于 2013-11-15T00:07:26.107 に答える
1

残念ながら、nextChar()メソッドではありません。これは、代わりに使用して解決できますnext().charAt(0)!

public class ReverseOrder
{
    //-----------------------------------------------------------------
    //  Reads a list of char from user and prints in reverse.
    //-----------------------------------------------------------------
    public static void main (String[] args)
    {
      Scanner scan = new Scanner (System.in);

      char[] letters = new char[10];

      System.out.println ("The size of the array: " + letters.length);
      for (int index = 0; index < letters.length; index++)
      {
         System.out.print ("Enter number " + (index+1) + ": ");
         letters[index] = scan.next().charAt(0);

      }

      System.out.println ("The numbers in reverse order:");

      for (int index = letters.length-1; index >= 0; index--)
         System.out.print (letters[index] + "  ");
    }
}
于 2013-11-14T23:43:07.443 に答える
1

あなたのケースで使用できます:

letters[index] = scan.nextLine().charAt(0);

scan.nextchar(); の代わりとして。

于 2013-11-14T23:43:15.077 に答える
0

char c = scan.nextLine().charAt(0);

彼は常に最初の文字が必要なので、charAt(index) ではなく charAt(0) でなければなりません。

于 2013-11-14T23:47:39.543 に答える