用java编写从标准输入读入一行字符串,打印出其中所有的数字
关注:211 答案:1 mip版
解决时间 2021-01-13 10:00
提问者童話被染上了傷
2021-01-12 17:23
import java.util.Scanner;
public class InputFigures {
public static void main(String[] arguments) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一串数字:");
String stringNumbers = scanner.nextLine();
String[] numbers = new String[stringNumbers.length()];
int count = 0;
int begin = 0;
int end = stringNumbers.indexOf(" ");
while (end >= 0) {
if (end == stringNumbers.indexOf(" ")) {
numbers[count++] = stringNumbers.substring(begin, end);
}
stringNumbers = stringNumbers.substring(end + 1);
end = stringNumbers.indexOf(" ");
}
if (end == -1) {
numbers[count++] = stringNumbers.substring(begin);
}
while (true) {
System.out.println("请问你要打印第几个数字?");
String outputNumbers = scanner.nextLine();
if (outputNumbers.length() < 1) {
System.out.println("谢谢您的使用!");
}
if (Integer.parseInt(outputNumbers) > numbers.length
|| Integer.parseInt(outputNumbers) <= 0) {
System.out.println("对不起,没有这个数字!");
} else {
int countNumbers = Integer.parseInt(outputNumbers);
System.out.println("第" + countNumbers + "个数字为:"
+ numbers[countNumbers - 1]);
}
}
}
}
运行结果:
请输入一串数字:
1 2 4
请问你要打印第几个数字?
1
第1个数字为:1
请问你要打印第几个数字?
2
第2个数字为:
请问你要打印第几个数字?
谢谢您的使用!
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at com.yang.InputFigures.main(InputFigures.java:69)
问题:如何才能实现注释上的功能?
第2个数字应为2
请问你要打印第几个数字?
谢谢您的使用!(不应该有错误信息)
最佳答案
二级知识专家白衣衬衫净少年
2021-01-12 18:16
package test1;
import java.util.Scanner;
public class InputFigures {
public static void main(String[] arguments) {
Scanner inputNumbers = null;
Scanner printNumbers = null;
boolean sw = true;
System.out.println("请输入一串数字!");
inputNumbers = new Scanner(System.in);
String stringNumbers = inputNumbers.nextLine();
System.out.println("你输入的数字为:" + stringNumbers);
char[] numbers = stringNumbers.toCharArray();
while (sw) {
printNumbers = new Scanner(System.in);
System.out.println("请问你要打印第几个数字?输入空格结束程序 ");
String sw2 = printNumbers.nextLine();
if (String.valueOf(sw2.charAt(0)).equals(" ")) {
sw = false;
System.out.println("谢谢您的使用!程序退出。");
} else if (Integer.parseInt(sw2) > numbers.length
|| Integer.parseInt(sw2) <= 0) {
System.out.println("对不起,没有这个数字!");
} else {
int len = Integer.parseInt(sw2);
System.out.println("第" + len + "数字为:" + numbers[len - 1]);
}
}
}
}
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
→点此我要举报以上信息!←
推荐资讯
大家都在看