我正在编写一个使用命令行的Java程序。
我正在制作的程序被其他程序使用,问题是我的第4个参数必须是int ,例如60(这是一个int,它用于计算)为了我的程序工作,然后使用它的程序有fixedwidth:60
(这是一个字符串)作为第4个参数。
现在我的问题是如何继续使用计算中的60 而不会因为程序使用字符串作为第4个参数而不是int而给出错误。我有Integer.parseInt
和Integer.ToString
,但我仍然遇到同样的错误
提前致谢。
答案 0 :(得分:1)
将字符串拆分为:
,然后解析第二部分,就像这样 -
String str = "fixedwidth:60";
String[] arr = str.split(":");
int val = Integer.parseInt(arr[1]);
// OR -
// int val = Integer.valueOf(arr[1]);
System.out.println(val);
输出
60
答案 1 :(得分:0)
Integer.parseInt(String)
和Integer.valueOf(String)
都希望输入String
只是您要解析的数字。这就是为什么在尝试解析NumberFormatException
时可能会获得"fixedwidth:60"
的原因。
如果您确实需要输入整个字符串"fixedwidth:60"
,则必须先从该字符串中提取数字。您可以使用String.split(":")
:
String str = "fixedwidth:60";
String[] arr = str.split(":"); // arr = { "fixedwidth", "60"}
int val = Integer.parseInt(arr[1]); // arr[1] = "60", which can be parsed