gpt4 book ai didi

java - 从控制台读取字符、字节和字符串

转载 作者:行者123 更新时间:2023-12-01 21:50:11 26 4
gpt4 key购买 nike

我希望至少有一个好人愿意帮助我 - 这个话题会让我很沮丧。

我在从控制台读取特定组成的数据时遇到问题,这意味着:在第一行中,我有三个由空格分隔的符号 - 2 个数字和 1 个字符。第二行有一行字符串。示例:

1 2 E

WUNDDLOOD

5 7 S

LRRMSDDD

我需要将它们作为字节类型(前两位数字)、字符类型(第一行的最后一个符号)和字符串类型(整个第二行)。

我尝试使用扫描仪,但无法从中读取字符。不过我尝试使用“charAt()”但是......可能我对此感到厌倦了。

我的代码摘录:

while (stdin.hasNextLine()) {
Scanner stdin = new Scanner(System.in);
byte x = stdin.nextByte();
byte y = stdin.nextByte();
char h = stdin.next().charAt(0);
String str = stdin.nextLine();
}

我得到了InputMismatchException并且最后一个字符串甚至没有被读取。你能帮我吗?

最佳答案

关闭,但您需要清除 .next() 之后的行。如果不这样做,您的循环会读取直到行尾,然后返回到循环顶部它需要一个字节的地方。您给它一个字符串,因此抛出一个InputMismatchException

Scanner stdin = new Scanner(System.in);

do {
byte x = stdin.nextByte();
byte y = stdin.nextByte();
char h = stdin.next().charAt(0);
stdin.nextLine(); // read EOL
String str = stdin.nextLine();

System.out.printf("Output: [%s, %s, %s], %s\n", x, y, h, str);
} while (stdin.hasNextLine());

运行

1 2 E
WHUNDDLOOD
Output: [1, 2, E], WHUNDDLOOD
5 7 S
LRRMSDDD
Output: [5, 7, S], LRRMSDDD

关于java - 从控制台读取字符、字节和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35349855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com