使用indexOf()将字符串拆分为多个int形式

时间:2014-10-16 20:47:15

标签: java string indexing

这是我的第一篇文章,所以对我很轻松。这是一个家庭作业问题,但我花了大约7个小时通过各种方式来完成这个目标并且没有成功。我正在为作业构建各种方法,我需要弄清楚如何将String拆分为多个int变量。

例如:鉴于String“100 200 300”,我需要将其更改为int 100200300的三个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}}

6 个答案:

答案 0 :(得分:0)

Joe,indexOf()已超载,请查看此版本:

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf(int,%20int)

答案 1 :(得分:0)

你需要两件事:

  1. 循环;
  2. 能够从停止的位置运行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;
}