Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单行替换在Java中不起作用_Java - Fatal编程技术网

简单行替换在Java中不起作用

简单行替换在Java中不起作用,java,Java,我在名为Sample.txt的文本文件中保存了以下内容 This is line1 This is line2 在这里,我想用,我的意思是,输出应该是 This is line1 and This is line2 我的代码如下 BufferedReader br=null try { String sCurrentLine; br = new BufferedReader(new FileReader("C:\\Users\\home\\Desktop\\Test\\S

我在名为Sample.txt的文本文件中保存了以下内容

This is line1
This is line2
在这里,我想用,我的意思是,输出应该是

This is line1 and This is line2
我的代码如下

BufferedReader br=null

try {

    String sCurrentLine;

    br = new BufferedReader(new FileReader("C:\\Users\\home\\Desktop\\Test\\Sample.txt"));
    int i = 0;
    while ((sCurrentLine = br.readLine()) != null) {

        String sCurrentLine1 = sCurrentLine.replaceAll("\\n+", "0NL0");
        System.out.println("Line No." + i + " " + sCurrentLine1);
        i++;
    }
当我打印这个时,我得到的输出是

Line No.0 This is line1
Line No.1 This is line2
请告诉我如何更换这条新线路

谢谢你试试这个

String str = "";
while ((sCurrentLine = br.readLine()) != null) {

    String sCurrentLine1 = sCurrentLine.replaceAll("\\n+", "0NL0");
    str = str + sCurrentLine1 + " and "; 
}
System.out.println(str.substring(0,(str.length()-5)));

希望它能帮助您。

您不需要执行
replaceAll
方法
BufferedReader::readLine()
sCurrentLine
中返回的字符串中删除
\n
字符。因此,您所要做的就是附加返回的行

例如:

try {

String sCurrentLine;
StringBuilder sb = new StringBuilder();// Declare a string builder object.
br = new BufferedReader(new FileReader("C:\\Users\\home\\Desktop\\Test\\Sample.txt"));
int i = 0;
while ((sCurrentLine = br.readLine()) != null) {
    if(i>0) {
        sb.append(" and ");
    }
    sb.append(sCurrentLine);
    System.out.println("Line No." + i + " " + sCurrentLine);
    i++;
}
System.out.println("Appended output " + sb.toString());

根据定义,
readLine()
读取单行,不包含结尾的换行符。您的替换问题是否不起作用(因此无法在结果中看到
0NL0
),或者您只是希望输出全部在一行中?对于后者,请使用
print
而不是
println
Hi Friend,这很好,但第一个结果是空打印,然后是实际结果<代码>空这是第1行,这是第2行