如何使用多行拆分字符串

时间:2015-03-20 00:54:08

标签: java arrays list

我说这是一个字符串

element1#element2#element3#element4
element1#element2#element3#element4
element1#element2#element3#element4
element1#element2#element3#element4

element1#element2#element3#element4
element1#element2#element3#element4

然后又一次我得到一个字符串

element1#element2#element3#element4

element1#element2#element3#element4
element1#element2#element3#element4

我如何创建一个数组,该数组将使用其受尊重的元素单独存储每一行​​。忽略空行

3 个答案:

答案 0 :(得分:1)

您是从文件中读取这些行中的每一行吗?如果是这样,请先读取每一行,检查其长度是否> 0如果它被拆分为字符串,否则在下一行中读取。

我发现你不是从文件中读取它,在这种情况下,你需要通过删除任何空格来拆分你的字符串,就像其他一些答案所提到的那样,然后将你的字符串拆分为#'#&#39 ;

以下是我的工作示例:

String s = "welcome#home\n\nDog#Cat#Eat";

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

    for (String first1 : first) {
        String[] result = first1.split("#");
        for(String result1: result){
            System.out.println(result1);
        }
    }

当然这是一般的想法,你可以操纵它来适用于你的用例。

答案 1 :(得分:0)

在string中有一个名为split()的方法。您可以指定正则表达式,并使用可选参数指定要拆分的次数(从左侧开始)。 这是一个例子:

array = line.split(" \\| ");

然后,数组将包含拆分字符串。

答案 2 :(得分:0)

如果您愿意将这些行存储在List<String>而不是String[]中并且您正在从文件中读取,那么值得一提java.nio.file.Files#readAllLines(Path, Charset) 。以下代码将所有非空行读入List

import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.Path;
import java.nio.charset.StandardCharsets;
import java.util.Collections;

//The rest of your implementation

Path pathToInput = Paths.get("path to input file");
//read the lines into a List<String> using a specified Charset, here, UTF-8
List<String> lines = Files.readAllLines(pathToInput, StandardCharsets.UTF_8);
lines.removeAll(Collections.singleton(""));