Java 更改字符串的部分
我基本上是在记事本上执行“替换”功能,但我无法删除/替换从.txt文件读取的字符串的一部分 我有:“1=55.748555-0.0000001.210479 0.0000000” 我想要:“1=55.748555-11.210479” 而我想手动给它-1 因为我在这里引起了一些混乱,我的代码如下。我还没有开始更换零件,因为我不知道如何更换Java 更改字符串的部分,java,Java,我基本上是在记事本上执行“替换”功能,但我无法删除/替换从.txt文件读取的字符串的一部分 我有:“1=55.748555-0.0000001.210479 0.0000000” 我想要:“1=55.748555-11.210479” 而我想手动给它-1 因为我在这里引起了一些混乱,我的代码如下。我还没有开始更换零件,因为我不知道如何更换 package txtzuibl; import java.io.*; import java.io.BufferedWriter; public class
package txtzuibl;
import java.io.*;
import java.io.BufferedWriter;
public class Txt_zu_ibl {
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("test.txt");
FileWriter fw = new FileWriter("output.txt");
BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(fw);
String zeile = "";
int i =0;
zeile ="Closed Index Arclength";
bw.write(zeile);
bw.newLine();
zeile="Begin section ! 1";
bw.write(zeile);
bw.newLine();
zeile=" Begin curve ! 1";
bw.write(zeile);
bw.newLine();
while( zeile != null )
//Some editing on the beginning
{
i++;
System.out.print(i+" ");
//Just for me so I can check if I didn't screw up
System.out.println(zeile);
zeile = br.readLine();
if( i>57 )
{
bw.write(zeile);
bw.newLine();
}
}
bw.close();
br.close();
}
}
要替换字符串的某些部分,可以使用replace或replaceAll。第一次尝试:
String s = "1=55.748555 -0.000000 1.210479 0.000000 0";
s = s.replace( "-0.000000", "-1" );
s = s.replace( "0.000000", "" );
s = s.replace( "0", "" ); // Oh no! this doesn't work because...
这是不好的,因为它还将杀死1.210479中的零。让我们使用正则表达式:
s = s.replaceAll( "-0.000000\\b", "-1" ); // exactly six decimal places
s = s.replaceAll( "\\b0.000000\\b", "" );
s = s.replaceAll( "\\b0\\b", "" );
最后两个可以合并
s = s.replaceAll( "\\b0(?:.000000)?\\b", "" );
或者,如果小数点后的零可以是任何正数:
s = s.replaceAll( "\\b0(?:.0+)?\\b", "" );
一些空格(从删除的数字之间)将保留。您可以通过另一个“替换所有”来清理这些空间,以折叠多余的空间:
s = s.replaceAll( "\\s{2,}", " " );
我们不会做你的家庭作业。给我们看看你的代码,告诉我们问题出在哪里。这不是家庭作业。对我来说,这是一项额外的工作,将来我会努力变得懒惰;-)。但是舒尔。我会编辑的。你到底在哪一部分?读取文件?阅读手册部分?进行字符串替换?仅替换字符串。剩下的我都搞定了。替换的代码在哪里!我爱你!