-2

我想拆分字符串...我希望只吐出 5 次然后...休息 1 个字符串

我试过这个

public class FileRead

{  

  public static void main(String[] args) throws IOException  
    {  

    StringBuffer strBuff = new StringBuffer();  
    String str = null;  

    File file = new File("D:\\wokies\\5_dataset.txt");  
    try {  
    Scanner scanner = new Scanner(file);  
    while (scanner.hasNextLine()) {  
    String line = scanner.nextLine();  
    System.out.println(line);

     String [] splitSt =line.split(" ");


        System.out.println("split happing");
        for (int i = 0 ; i < splitSt.length ; i++) 
        {
            System.out.println(splitSt[i]); 
        }


    }  
    } catch (FileNotFoundException e) {  
    e.printStackTrace();  
    }  
    }  
}
4

4 回答 4

2

我不会为您编写代码,但解决方案非常简单,一种解决方案是有一个计数器,将其初始化为0,并在每次迭代时递增。当它是 5 时,不要拆分1


1我假设您希望每次都在一个输入上而不是同一个输入上进行拆分。

于 2013-10-10T10:26:38.203 回答
2

java.lang.String.split(String regex, int limit)接受一个限制:您希望多久拆分一次输入?

如果限制 n 大于零,则模式将最多应用 n - 1 次,数组的长度将不大于 n,并且数组的最后一个条目将包含最后一个匹配分隔符之外的所有输入。

所以

line.split(" ", 5);

会解决你的问题。

于 2013-10-10T10:28:28.657 回答
1

您可以将 split 与 limit 一起使用split(regex, limit)。尝试一下split(" ", 5),这将创建最多包含 5 个元素的数组,并且最后一个元素不会像"a b c d".split(" ", 3)创建的那样被拆分["a", "b", "c d"]

于 2013-10-10T10:29:57.017 回答
0

split方法String可以采用第二个参数“limit”,该参数“控制应用模式的次数,因此影响结果数组的长度”。

打电话line.split(" ", 5);

于 2013-10-10T10:29:43.787 回答