如何组合字符串中的字母并将它们保存到JAVA,Android中的其他变量中

Posted

技术标签:

【中文标题】如何组合字符串中的字母并将它们保存到JAVA,Android中的其他变量中【英文标题】:How to combine letters from a string and save them into other variables in JAVA, Android 【发布时间】:2012-12-28 06:48:33 【问题描述】:

我希望这不是一个愚蠢的问题,因为这只是我接触 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++ 的了解有限,因此我试图以我知道的唯一方式来做这件事。

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

【问题讨论】:

能否提供来自 Logcat 的异常日志 你是这个意思吗? “这是字符串”然后将它们存储为... a="This", b="is", c="string" 大家好,感谢您抽出宝贵时间。 Prateek,我不知道异常日志是什么,但我已经编辑了帖子,我希望是这样。 Kettu,是的,确实是我想要完成的。 【参考方案1】:

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

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

temp[0] 将包含“单词” temp[1] 将包含“word1” 等等……

【讨论】:

现在明白了,可以说what.split(" ");会通过仅在空格之间取值来拆分所有内容吗?如果是这样,是否会添加一个连字符,例如,what.split("-") 将所有内容拆分为连字符? 是的,所以如果字符串示例是“word1-word2”,那么拆分会产生word1和word2,连字符会被丢弃【参考方案2】:

试试这个代码:

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

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

【讨论】:

【参考方案3】:

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

    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();
    

【讨论】:

以上是关于如何组合字符串中的字母并将它们保存到JAVA,Android中的其他变量中的主要内容,如果未能解决你的问题,请参考以下文章

如何在包含单词、三个字母月份和两位数字年份的字符串中搜索月份和年份并将它们转换为 SQL 中的日期?

拖放 2 张图像以将它们放置在背景上并将它们保存为 1 张组合图像?

用JAVA编写一程序:从键盘输入多个字符串到程序中,并将它们按逆序输出在屏幕上。

用JAVA编写一程序:从键盘输入多个字符串到程序中,并将它们按逆序输出在屏幕上。

Java - 如何获取字符串中特定字符的所有出现并将它们转移到非预定义位置?

如何生成随机字母并将它们分配给 Python 中的变量