我对编程很新,所以请耐心等待。假设我有一个像这样的大字符串。
String story =“这是第一行。\ n”
+“这是第二行。\ n”
+“这是第三行\ n” +“这是第四行。\ n”
+“这是第五行。”;
我如何提取第一行,第四行等等?
答案 0 :(得分:13)
如果您想避免创建数组,可以使用Scanner
Scanner scanner = new Scanner(story);
while(scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
答案 1 :(得分:5)
String[] lines = story.split(System.getProperty("line.separator"));
String firstLine = lines[0];
// and so on
您可以在\n
上拆分,但因此您将被固定到* nix系统的行分隔符。如果碰巧你必须在窗口上解析,那么在\n
上拆分将不起作用(除非你的字符串是硬编码的,这会破坏分裂的整个目的 - 你知道哪些是事先的行)< / p>
答案 2 :(得分:3)
您可以使用split方法将字符串拆分为行,然后编制索引以获取所需的行:
String story =
"This is the first line.\n" +
"This is the second line.\n" +
"This is the third line\n" +
"This is the fourth line.\n" +
"This is the fifth line.";
String[] lines = story.split("\n");
String secondLine = lines[1];
System.out.println(secondLine);
结果:
This is the second line.
注意:
lines[0]
。答案 3 :(得分:1)
String[] lines = story.split('\n');
String line_1 = lines[0];
String line_4 = lines[3];
或沿着这些方向的东西
答案 4 :(得分:1)
如果字符串非常长,您可以使用BufferedReader和StringReader的组合一次一行:
String story = ...;
BufferedReader reader = new BufferedReader(new StringReader(story));
while ((str = reader.readLine()) != null) {
if (str.length() > 0) System.out.println(str);
}
否则,将字符串拆分为数组,如果它使用Split
足够小:
String[] lines = story.split("\n");
答案 5 :(得分:0)
您可以将字符串拆分为数组,然后选择所需的数组元素
String[] arr = story.split("\n")
arr[0] // first line
arr[3] // fourth line