在java中的第7个空格之后拆分字符串

时间:2014-04-03 06:10:34

标签: java string-split

我有一个

String data =
-rw-rw-r--+ 1 aime1 svrtech 83338 Apr 2 10:26 sat.log -rw-rw-r--+ 1 aime1 svrtech 2435 Apr 2 10:48 MAT.log -rw-rw-r--+ 1 aime1 svrtech 3470 Apr 2 08:35 ant_build.log 

我想将其拆分为以下内容,并希望存储在ArrayList

-rw-rw-r--+ 1 aime1 svrtech 83338 Apr 2 10:26 sat.log 

-rw-rw-r--+ 1 aime1 svrtech 2435 Apr 2 10:48 MAT.log

-rw-rw-r--+ 1 aime1 svrtech 3470 Apr 2 08:35 ant_build.log

我想过使用分割功能。我如何在第7空间分裂。 任何人都知道如何做到这一点。

5 个答案:

答案 0 :(得分:1)

借助正则表达式

Patter p = Pattern.complie("-rw.*log");// capture string from  -rw to log
Matcher m = p.matcher("String data= -rw-rw-r--+ 1 aime1 svrtech 83338 Apr 2 10:26 sat.log -rw-rw-r--+ 1 aime1 svrtech 2435 Apr 2 10:48 MAT.log -rw-rw-r--+ 1 aime1 svrtech 3470 Apr 2 08:35 ant_build.log");

while(m.find){
     list.add(m.group()); // list --> ArrayList
}

答案 1 :(得分:1)

String#split将正则表达式作为参数,因此请尝试使用此类

String data ="-rw-rw-r--+ 1 aime1 svrtech 83338 Apr 2 10:26 sat.log -rw-rw-r--+ 1 aime1 svrtech 2435 Apr 2 10:48 MAT.log -rw-rw-r--+ 1 aime1 svrtech 3470 Apr 2 08:35 ant_build.log";

    String arr[]=data.split("(?<=.log )");
    for(String s:arr){
    System.out.println(s);
    }

答案 2 :(得分:0)

    String sData = "-rw-rw-r--+ 1 aime1 svrtech 83338 Apr 2 10:26 sat.log -rw-rw-r--+ 1 aime1 svrtech 2435 Apr 2 10:48 MAT.log -rw-rw-r--+ 1 aime1 svrtech 3470 Apr 2 08:35 ant_build.log ";
    String arrData[] = sData.split(" ");
    int iCounter = 0;

    while(iCounter < arrData.length) {
        for(int i = 0; i < 9; i++) {
            System.out.print(arrData[iCounter]+"\t");
            iCounter++;
        }
        System.out.println("");

    }

答案 3 :(得分:0)

似乎.log结束了你想要的每一个字符串。所以也许你可以做到这一点

String[] output = input.split(".log ");

现在每个输出字符串都包含文件名(.log除外)。所以你可以向他们添加.log并使用它们。

答案 4 :(得分:0)

尝试使用此代码

包装;

public class splitstring {
    public static void main(String[] args) {
        String data = "-rw-rw-r--+ 1 aime1 svrtech 83338 Apr 2 10:26 sat.log -rw-rw-r--+ 1 aime1 svrtech";
        String[] dataArr = data.split(" ");
        String[] resArr = new String[20];
        int j = 0;
        int k = 0;
        for (int i = 0; i < dataArr.length; i++) {
            if(j==8){
                resArr[k] = resArr[k]+dataArr[i];
                k++;
                j=0;
                return;
            }
            resArr[k] = resArr[k]+dataArr[i]+" ";
        }
    }
}