提问人:Noname 提问时间:12/20/2022 最后编辑:nakhodkinNoname 更新时间:12/22/2022 访问量:101
如何在 Java 中的单独变量中从字符串中拆分整数?
How to split integers from a String in seperate variables in Java?
问:
我正在尝试让以下内容发挥作用:
想象一下,通过 scanner 类的输入是这样的:
新 10 32
我想将这些值存储到两个单独的变量中。但我在从字符串到整数的转换中挣扎。有谁知道如何实现这一点,所以在进行评估后,我可以有两个看起来像这样的变量: int width = 10(第一个参数) int height = 32(第二个参数)。 提前感谢您的任何帮助。
以下是我到目前为止实现的内容:
我知道代码相当丑陋,但我无法思考如何让它工作
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
String word = "";
String number1 = "";
String number2 = "";
boolean check = false;
for (int i = 0; i < 5; i++) {
word += input.charAt(i);
}
word.trim();
if (word.equals("new")) {
for (int i = 4; i < input.length(); i++) {
if (Character.isDigit(input.charAt(i)) && !check) {
number1 += input.charAt(i);
} else if (check) {
number2 += input.charAt(i);
}
if (input.charAt(i) == ' ') {
check = true;
}
}
}
System.out.println(number1 + " " + number2);
}
}
答:
0赞
Pranav
12/20/2022
#1
String str = "new 10 32";
// Split the string by space character
String[] parts = str.split(" ");
// Convert the second and third elements of the array to integers
int width = Integer.parseInt(parts[1]);
int height = Integer.parseInt(parts[2]);
这应该有效
1赞
YvesHendseth
12/20/2022
#2
这就是我解决所描述的问题的方法:
String input = scnanner.nextLine();
Integer firstNumber;
Integer secondNumber;
if(input.contains("new")){
String[] split = input.split(" ");
// if you can be sure that there are only two numbers then you don't need a loop.
// In case you want to be able to handle an unknown amount of numbers you need to
// use a loop.
firstNumber = split.length >= 2 ? Integer.valueOf(split[1]) : null;
secondNumber = split.length >= 3 ? Integer.valueOf(split[2]) : null;
}
注意:我没有测试代码,只是从脑海中输入。 希望这能让您了解如何完成这项任务。
评论
0赞
esQmo_
12/20/2022
然后,您应该将其标记为“已接受”,以便其他人可以找到它
评论
word.trim();