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

在java中,在第7个空格后拆分字符串,java,string-split,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 A

我有一个

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
我想过使用分割函数。我如何在第七空间分割。
任何人都知道怎么做。

在regex的帮助下

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
}
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”;
字符串arrData[]=sData.split(“”);
int i计数器=0;
while(i计数器
似乎是这样。日志结束了您想要的所有字符串。所以也许你能做到

String[] output = input.split(".log ");
现在,每个输出字符串将包含文件名(除了.log)。因此,您可以向它们添加
.log
,并使用它们。

将正则表达式作为参数,因此请尝试以下方法

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);
    }
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”;
字符串arr[]=data.split((?请尝试使用此代码)

包装

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]+" ";
        }
    }
}
公共类拆分字符串{
公共静态void main(字符串[]args){
字符串数据=“-rw-rw-r--+1 aime1 svrtech 83338 Apr 2 10:26 sat.log-rw-rw-r--+1 aime1 svrtech”;
字符串[]dataArr=data.split(“”);
字符串[]resArr=新字符串[20];
int j=0;
int k=0;
对于(int i=0;i
是否有任何理由不按所有空格进行拆分,如“使用数据完成”。拆分(“”)?为什么不在所有空格上拆分,将生成的数组包装在一个列表中,在元素7的右边取一个子列表,然后在空格上联接?感谢所有的解决方案,还有一件事我在字符串中还有一些.txt文件,如何忽略它?忽略意味着你需要使用.txt进行拆分或删除.txt?我不想将这些字符串保存到数组中-rw-rw-r--+1aime1 svrtech 54761 Apr 2 09:43 diff.txt
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]+" ";
        }
    }
}