想象一下,我有以下字符串:
select MIN(id) as id, version, GREATEST(COUNT(version), 1) as total
. . .
我从文件中获取此字符串。
我怎样才能把它变成这样的刺痛数组:
hoi
hoe
gaat
het
实现这一目标的最简单方法是什么?
答案 0 :(得分:6)
您可以使用if newVector(1)=='R' %or use strcmp()
% perform concatenation
else
% do nothing and jump to the next for-loop iteration (i.e. next variable)
end
。
split()
答案 1 :(得分:6)
这适用于任何系统。
String[] array = str.split(System.getProperty("line.separator"));
答案 2 :(得分:5)
从Java 8开始,有一些内置方法:
Files.readAllLines(Path)
它给出List<String>
。如果确实需要,您可以将其转换为数组。
Files.lines(Path)
它给出Stream<String>
。然后,您可以处理每个String,而无需将整个文件加载到内存中。
答案 3 :(得分:3)
另一种方法。根据{{1}}之间的任何内容进行拆分。跨平台工作:
[a-zA-Z]
O / P:
public static void main(String[] args) throws IOException, InterruptedException {
String s = "asda\r\nasdsa";
System.out.println(Arrays.toString(s.split("[^a-zA-Z]+")));
}
答案 4 :(得分:0)
try {
File file = new File("file.txt");
Path path = file.toPath();
List<String> strings = Files.readAllLines(path); // this is available on **java 8**
// List<String> strings = FileUtils.readLines(file); // this can be used with **commons-io-2.4 library**
for (String s : strings) {
System.out.println(s);
}
String[] string_array = new String[strings.size()];
for (int i = 0; i < strings.size(); i++) {
string_array[i] = strings.get(i);
}
System.out.println(Arrays.deepToString(string_array));
} catch (Exception e) {
e.printStackTrace();
}
答案 5 :(得分:0)
如果输入在一个完整的字符串中,您可以这样做以将字符串拆分为字符串数组:
String[] hallo = input.split("[ ]+");