基于每隔一次出现将String拆分为数组

时间:2013-07-05 08:27:57

标签: java android

嗨,我确定这是一个相当简单的,但我的java非常生疏。

我有一个示例字符串

  

AAA \ N123 \ nbbb \ N124 \ ncccdef \ N125 \ ndefg \ N126

我需要做的是根据每次出现的\ n将字符串拆分成集合,这将导致数组:

  

AAA \ N123

     

BBB \ N124

     

cccdef \ N125

     

DEFG \ N126

我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:4)

这是另一个代码。它解决了你的问题。经过测试和验证。

        String temp = "aaa\n123\nbbb\n124\ncccdef\n125\ndefg\n126";
        String parts[] = temp.split("\n");
        ArrayList<String> listItems = new ArrayList<String>();

        for (int i = 0; i < parts.length; i =i+2) {
            listItems.add(parts[i]+"\\n"+parts[i+1]);

        }
             /*Below loop is just to verify if your list contains correct items, Printing logs*/
        for (int i = 0; i < listItems.size(); i++) {

            Log.d("TEMP","item = "+ listItems.get(i));
        }

P.S: - 只需确认您在需要的地方添加了NULL检查。 :)快乐的编码。

答案 1 :(得分:0)

一次尝试可能是正则表达式。 或者你在每次出现时拆分它并在你自己的

上建立对

答案 2 :(得分:0)

String example; //your string
String c = "\\n"; //I assume your delimiter is actually the "\n" string not the newline

String[] pieces = example.split(c);
ArrayList<String> final_list = new ArrayList<String>;

bool add = false;
String mem;

for (String s : pieces) {
    if (add) {
        final_list.add(mem+c+s);
    } else {
        mem = s;
    }
    add = !add;
}

答案 3 :(得分:0)

快速而肮脏的解决方案:

    String input = "aaa\n123\nbbb\n124\ncccdef\n125\ndefg\n126";
    String[] splitted = input.split("\n");
    String[] finalArray = new String[splitted.length / 2];
    int idx =0;

    for(int i=0; i<splitted.length; i=i+2) {
        finalArray[idx] = finalArray[i] + finalArray [i+1];
        idx++;
    }

答案 4 :(得分:0)

String data = "aaa\n123\nbbb\n124\ncccdef\n125\ndefg\n126";

        String[] splitData = data.split("\n");
        List<String> finalData = new ArrayList<String>();
        StringBuilder temp = new StringBuilder();

        for (int i = 0; i < splitData.length; i++) {
            temp.append(splitData[i]);
            if (i % 2 == 1) {
                finalData.add(temp.toString());
                temp = new StringBuilder();
            } else {
                temp.append("\n");
            }
        }