这是我的第一篇文章,所以对我很轻松。这是一个家庭作业问题,但我花了大约7个小时通过各种方式来完成这个目标并且没有成功。我正在为作业构建各种方法,我需要弄清楚如何将String
拆分为多个int
变量。
例如:鉴于String
“100 200 300”,我需要将其更改为int
100
,200
,300
的三个indexOf()
。我必须使用split()
,并且不能使用 String scores="100 200 300";
int n=scores.indexOf(" ");
String sub=scores.substring(0,n);
Integer.parseInt(sub);
或数组。
int
这让我得到第一个字符串“100”并解析它。但是,我不知道如何继续代码,所以它将获得下一个。对于我的方法,我需要新的for
变量用于以后的参数。
编辑:我想我需要使用for(int i=0; i<=scores.length; i++)
{//I do not know what to put here}
循环:类似于:
{{1}}
答案 0 :(得分:0)
Joe,indexOf()已超载,请查看此版本:
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf(int,%20int)
答案 1 :(得分:0)
你需要两件事:
indexOf()
(提示:阅读Javadoc)。答案 2 :(得分:0)
public static void main(String[] args) {
String scores = "100 200 300";
ArrayList<Integer> numbers = new ArrayList<Integer>();
int n = 0;
while (n != -1) {
String sub = "";
n = scores.indexOf(" ");
if (n != -1) {
sub = scores.substring(0, n);
scores = scores.substring((n + 1));
} else {
sub = scores;
}
numbers.add(Integer.parseInt(sub));
}
for (int i : numbers) {
System.out.println("" + i);
}
}
尝试这样的循环并向arraylist添加数字。 arraylist数字将包含你的所有数字。
答案 3 :(得分:0)
试试这个:
String scores="100 200 300";
int offset = 0;
int space;
int score;
scores = scores.trim(); //clean the string
do
{
space= scores.indexOf(" ", offset);
if(space > -1)
{
score = Integer.parseInt(scores.substring(offset , space));
}
else
{
score = Integer.parseInt(scores.substring(offset));
}
System.out.println(score);
offset = space + 1;
}while(space > -1);
答案 4 :(得分:0)
你的'n'变量是重要的部分。你通过从0切换到'n'得到你的第一个字符串,所以你的下一个字符串不是从0开始,而是在 n +“”。size()
答案 5 :(得分:0)
好的,这就是我想出的:
由于我需要将新解析的ints
与不同的变量进行比较,并确保ints
的数量等于另一个变量,因此我创建了此while
循环:
public boolean isValid()
{
int index=0;
int initialindex=0;
int ntotal=0;
int ncount=0;
boolean flag=false;
while (index!=-1)
{
index=scores.indexOf(" ");
String temp=scores.substring(initialindex,index);
int num=Integer.parseInt(temp);
ntotal+=num;
ncount++;
initialindex=index;
}
if (ntotal==total && ncount==count)
{
flag=true;
}
return flag;
}