英文:
Remove selected new line in java string and maintain the String order
问题
I want to remove the new line from the given string format
This is test;
This is new test;
This is new test2;
This is another string test;
this is more space string test;
Output should be like this:
This is test;
This is new test;
This is new test2;
This is another string test;
this is more space string test;
I know I can use regex expression or replace all with "\n" but in that case, all the string will be replaced in single line and the order of string which i want won't be maintained.
英文:
I want to remove the new line from the given string format
This is test;
This is new test;
This is new test2;
This is another string test;
this is more space string test;
Output should be like this:
This is test;
This is new test;
This is new test2;
This is another string test;
this is more space string test;
I know I can use regex expression or replace all with "\n"
but in that case, all the string will be replaced in single line and the order of string which i want won't be maintained.?
答案1
得分: 2
这部分内容的中文翻译如下:
一种选择是在点模式下对以下模式进行正则替换:
\r?\n\s*
然后,只需替换为一个换行符,以保留原始的单个换行符。
String input = "Line 1\r\n\n\n\n Line 2 blah blah blah\r\n\r\n\n Line 3 the end.";
System.out.println("Before:\n" + input + "\n");
input = input.replaceAll("(?s)\r?\n\\s*", "\n");
System.out.println("After:\n" + input);
这将打印出:
Before:
Line 1
Line 2 blah blah blah
Line 3 the end.
After:
Line 1
Line 2 blah blah blah
Line 3 the end.
英文:
One option would be to do a regex replacement on the following pattern, in dot all mode:
\r?\n\s*
Then, just replace with a newline, to retain an original single newline.
String input = "Line 1\r\n\n\n\n Line 2 blah blah blah\r\n\r\n\n Line 3 the end.";
System.out.println("Before:\n" + input + "\n");
input = input.replaceAll("(?s)\r?\n\\s*", "\n");
System.out.println("After:\n" + input);
This prints:
Before:
Line 1
Line 2 blah blah blah
Line 3 the end.
After:
Line 1
Line 2 blah blah blah
Line 3 the end.
答案2
得分: 0
input.txt
这是测试;
这是新测试;
这是新测试2;
这是另一个字符串测试;
这是更多空格字符串测试;
Main.clas
public class Main {
private static String input = "";
public static void main(String[] args) throws IOException {
// 读取文件,考虑所有空格和边距。
Files.lines(Paths.get("src/input.txt"), StandardCharsets.UTF_8).forEach(e->{
input = input.concat(e);
input = input.concat("\n");
});
while (input.contains("\n\n")){
input = input.replace("\n\n","\n");
}
// 修剪两侧的边距
input = input.trim();
System.out.println(input);
}
}
结果
这是测试;
这是新测试;
这是新测试2;
这是另一个字符串测试;
这是更多空格字符串测试;
英文:
input.txt
This is test;
This is new test;
This is new test2;
This is another string test;
this is more space string test;
Main.clas
public class Main {
private static String input = "";
public static void main(String[] args) throws IOException {
//Reading the file, taking into account all spaces and margins.
Files.lines(Paths.get("src/input.txt"), StandardCharsets.UTF_8).forEach(e->{
input = input.concat(e);
input = input.concat("\n");
});
while (input.contains("\n\n")){
input = input.replace("\n\n","\n");
}
//trim the margins on both sides
input = input.trim();
System.out.println(input);
}
}
Result
This is test;
This is new test;
This is new test2;
This is another string test;
this is more space string test;
答案3
得分: 0
尝试这个。
String text = Files.lines(Paths.get("input.txt"))
.map(line -> line.trim())
.filter(line -> !line.isEmpty())
.collect(Collectors.joining("\n"));
System.out.println(text);
输出
这是测试;
这是新的测试;
这是新的测试2;
这是另一个字符串测试;
这是更多空格的字符串测试;
英文:
Try this.
String text = Files.lines(Paths.get("input.txt"))
.map(line -> line.trim())
.filter(line -> !line.isEmpty())
.collect(Collectors.joining("\n"));
System.out.println(text);
output
This is test;
This is new test;
This is new test2;
This is another string test;
this is more space string test;
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论