如果我输入
java DeleteX e < input.txt > output.txt
在终端中,代码应该从e
文件中删除某个字符(在本例中为input.txt
),然后将相同的文本保存到新文件output.txt
但是应删除所有e
。
例如:如果input.txt
中的文字如下:
Hello! My name is John Doe.
output.txt
文件应为:
Hllo! My nam is John Do.
但我没有在output.txt
获得空格。我明白了:
Hllo!MynamisJohnDo.
代码:
public class DeleteX{
public static void main(String []args){
String x = args[0]; // The character I want removed from the text
char X = x.charAt(0); // Transform the character from String to char
while(! StdIn.isEmpty()){
String line = StdIn.readString(); // The .txt file
for( int i = 0; i < line.length(); i++){
if( line.charAt(i) != X ){
System.out.print(line.charAt(i));
} // if
} // for
} // while
} // main
} // class
答案 0 :(得分:0)
我认为更好的方法是在字符串上使用replace
方法。
像:
line = line.replace(x, "");
然后打印出来。
答案 1 :(得分:0)
您可以使用String.replace方法替换该字符。 例如
String replaceString=s1.replaceAll(""+x,""); //replaces all occurrences of x to "".
e.g。
String input = "Hello! My name is John Doe.";
char X = 'e';
System.out.println(input.replaceAll("" + X, ""));
打印的输出为 - Hllo! My nam is John Do.
答案 2 :(得分:0)
根据此页面http://introcs.cs.princeton.edu/java/stdlib/javadoc/StdIn.html
StdIn功能通过一次读取一个令牌来操作,其中
令牌是非空白字符的最大序列。
这意味着你对StdIn.readString()的调用;不是一次读一行,而是一次读一个标记(或单词) - 按定义,没有空格。
所以你应该一次读一行,而不是使用StdIn。见Read input line by line