-3

我希望这不是一个愚蠢的问题,因为这只是我接触 JAVA 和 Android 编程的第 5 周。所以我对此还是很陌生。

这是我的代码:

public void splitData(){ //**********************PROBLEM HERE**********************

    //Initialise everything to 0 to prepare for variable entry
    y=0;
    gender = "";
    sAge = "";
    sTotalC = "";
    smoker = "";
    sHDLC = "";
    medication = "";
    sSystolic = "";

    //To locate the spaces in the data
    for(x=0;x<toSplit.length();x++){

        if (toSplit.charAt(x) == ' '){

            spaceCount[y]=x;
            y++;

        }

    }

    //to put together gender
    for(x=0;x<spaceCount[0];x++){

        gender+= toSplit.charAt(x);

    }

    //to put together age
    for(x=spaceCount[0]+1;x<spaceCount[1];x++){

        sAge+=toSplit.charAt(x);

    }

    //to put together total Cholesterol
    for(x=spaceCount[1]+1;x<spaceCount[2];x++){

        sTotalC+=toSplit.charAt(x);

    }

    //to put together smoker status
    for(x=spaceCount[2]+1;x<spaceCount[3];x++){

        smoker+=toSplit.charAt(x);

    }

    //to put together HDL Cholesterol level
    for(x=spaceCount[3]+1;x<spaceCount[4];x++){

        sHDLC+=toSplit.charAt(x);

    }

    //to put together medication status
    for(x=spaceCount[4]+1;x<spaceCount[5];x++){

        medication+=toSplit.charAt(x);

    }

    //to put together Systolic BP
    for(x=spaceCount[5]+1;x<=toSplit.length();x++){

        sSystolic+=toSplit.charAt(x);

    }



}

}

所以基本上我的可怕尝试是在字符串中找到所有空格,并根据空格将字符串中的字母组合成不同的变量,并将每个新构造的单词显示到 EditText 中。

这段代码中的一切都很好,直到我点击按钮 mSplit 应该开始执行所述任务,然后它会显示“不幸的是应用程序已停止工作”。

我在很多网站上搜索过,但大多数网站都使用其他形式的方法来拆分句子并立即显示,而不会将其保存到另一个数组或变量中。

看起来而且我知道我可能正在以一种漫长而愚蠢的方式来做这件事,因为我对 C++ 的了解有限,因此我试图以我知道的唯一方式来做这件事的原因。

我对所有建议和意见持开放态度,并在此先谦虚地感谢您。

4

3 回答 3

3

使用 split 函数,然后将其放入字符串数组

String what = "word word1 word2 word3";
String [] temp = what.split(" ");

temp[0] 将包含“word” temp[1] 将包含“word1”,依此类推...

于 2012-12-28T07:00:46.843 回答
0

试试这个代码:

String[] infoArray = info.split("\\s+");  

为您的地址做同样的事情。
通过这种方式,您不必在知道数组大小之前初始化数组,并且您也可以忽略所有空格。trim在拆分之前 对您的字符串更好。

于 2012-12-28T07:09:51.823 回答
0

如果您知道其中有多少并且在它们之间有多个空格...

    String toSplit = "aoksd    oaskod    ssdoks    aoskdo    skasdk soakd";
    String[] msg = new String[6];
    int a = 0;
    int c = 0;
    while(true)
    {
        a = toSplit.indexOf(" ");
        if(a == -1)
        {
            msg[c] = toSplit;
            break;
        }
        msg[c++] = toSplit.substring(0, a);
        toSplit = toSplit.substring(a, toSplit.length()).trim();
    }
于 2012-12-28T07:29:43.953 回答