Java for循环错误

Java for循环错误,java,Java,我试图使用for语句(输入字符1、输入字符2等)获取sortValues[]数组的用户输入 但是,当我执行此操作时,程序将不允许我输入字符2,而是直接跳到字符3,如下所示 如何解决这个问题?代码包括在下面 谢谢 static public void s_1d_char () { int counter=0; int x=0; c.print("How many characters? "); cou

我试图使用for语句(输入字符1、输入字符2等)获取sortValues[]数组的用户输入

但是,当我执行此操作时,程序将不允许我输入字符2,而是直接跳到字符3,如下所示

如何解决这个问题?代码包括在下面

谢谢

static public void s_1d_char () {
            int counter=0;
            int x=0;
            c.print("How many characters? ");
            counter = readInt();

            char[] sortValues = new char[counter+1];

            for (x=1;x<=counter;x++) {
                    System.out.println("Enter character "+(x)+":");
                sortValues[x] = readChar();
            }
    }
尝试以下操作,而不是
readChar()

sortValues[x] = Integer.parseInt(System.console().readLine());

我建议使用扫描仪获取用户输入:

import java.util.Scanner;

// ...
int counter = 0;

System.out.println("How many characters?");
Scanner keyboard = new Scanner(System.in);
counter = keyboard.nextInt();

char[] sortValues = new char[counter+1];

// Start your index variable off at 0
for (int x = 0; x < counter; x++) { 
  System.out.println("Enter character "+(x)+":");
  keyboard = new Scanner(System.in);
  String line = keyboard.nextLine();
  sortValues[x] = line.charAt(0);
}
import java.util.Scanner;
// ...
int计数器=0;
System.out.println(“多少个字符?”);
扫描仪键盘=新扫描仪(System.in);
计数器=键盘.nextInt();
char[]sortValues=新字符[计数器+1];
//从0开始关闭索引变量
对于(int x=0;x
这将捕获行的第一个字符。如果用户输入多个字符,程序将只读取第一个字符。
另外,考虑到数组是基于0的索引,你真的应该将索引变量
x
从0开始。

会不会是按enter键算作第二个字符?如果是这样,我该如何解决?你能写下
readChar()
的实现吗?我不知道是不是这样,这就是为什么我在做评论而不是回答,但是你可以在字符之间不按enter键进行检查如果你使用BufferedInputStream来包装你的输入,你有一个方便的
readLine()
方法。这只适用于获取整数。。。我想得到一个“字符”value@01jayss请尝试
char c=System.console().readLine().charAt(0)
char可以用int表示。请参阅。本质上,它是一个16位的int,而int数据类型是32位的。@01jayss,Roddy说的,只要你把它存储在一个字符中(或者给它一个cast),Java就会自动将它显示为一个字符。谢谢你的回复。我已经实现了你的代码,但是,程序现在在“多少个字符”后停止(它不显示Enter character等)……你知道解决方案吗?@01jayss:我用一个有效的解决方案更新了代码片段。
import java.util.Scanner;

// ...
int counter = 0;

System.out.println("How many characters?");
Scanner keyboard = new Scanner(System.in);
counter = keyboard.nextInt();

char[] sortValues = new char[counter+1];

// Start your index variable off at 0
for (int x = 0; x < counter; x++) { 
  System.out.println("Enter character "+(x)+":");
  keyboard = new Scanner(System.in);
  String line = keyboard.nextLine();
  sortValues[x] = line.charAt(0);
}