Java 如何解析字符串中的数字?

Java 如何解析字符串中的数字?,java,string,integer,parseint,Java,String,Integer,Parseint,我在java中有一个包含数字的字符串'line',例如,“345564” 我想将这3个数字存储在intx,y,z 当我这样做的时候 x = Integer.parseInt(line[0]) y = Integer.parseInt(line[1]) 我得到一个错误,说“需要数组,但找到字符串”。我不明白为什么它需要一个数组 x,y,z是声明的整数,而line被声明为字符串首先将字符串拆分为空格数组(\\s+): 然后执行类似这样的操作 StringTokenizer st = new S

我在java中有一个包含数字的字符串'line',例如,“345564”

我想将这3个数字存储在
intx,y,z

当我这样做的时候

x = Integer.parseInt(line[0]) 

y = Integer.parseInt(line[1])
我得到一个错误,说“需要数组,但找到字符串”。我不明白为什么它需要一个数组


x,y,z
是声明的整数,而line被声明为字符串

首先将字符串拆分为空格数组(
\\s+
):

然后执行类似这样的操作

StringTokenizer st = new StringTokenizer("34 55 64");
x = Integer.parseInt(st.nextToken());
y = Integer.parseInt(st.nextToken());
z = Integer.parseInt(st.nextToken());
正如在注释中指出的,StringTokenizer是一个遗留类(虽然没有弃用),可以用以下代码替换

String line = "34 55 64 ";
String []splits = line.trim().split("\\s+");
x = Integer.parseInt(splits[0]);
y = Integer.parseInt(splits[1]);
z = Integer.parseInt(splits[2]);

你为什么要做这样的事?这是一个非常具体的代码,将在非常有限的输入中工作,这使得ccode非常脆弱。无论如何按照Sabuj的建议,首先将字符串拆分为字符串数组听起来像是满足此类要求的最佳选择,因为您正在指定索引。这个问题似乎与主题无关,因为一个问题不能代替阅读编程基础知识。请注意,StringTokenizer是一个遗留类,为了兼容性而保留尽管在新的代码中不鼓励使用它,但原因是
String line = "34 55 64 ";
String []splits = line.trim().split("\\s+");
x = Integer.parseInt(splits[0]);
y = Integer.parseInt(splits[1]);
z = Integer.parseInt(splits[2]);