我说这是一个字符串
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
我如何创建一个数组,该数组将使用其受尊重的元素单独存储每一行。忽略空行
答案 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(""));