我的问题是,我有一个输入文件,我必须重写文本,在没有4个单词(“a”),(“the” ),(“A”),(“The”)。我设法解决它为“a”和“the”,但不是为“A”和“The”。你可以帮我用我的代码吗?提前致谢。 下面是问题,输入我的代码:如何替换每个句子的第一个单词(来自输入文件)
问题:
英语,单词“一”和“”可大多是从句子删除,而不影响意义。这是一个压缩文本文件大小的机会!编写一个程序,逐行输入一个文本文件,并写出一个新的文本文件,其中每行删除了无用的单词。
首先编写一个简单版本的程序,用一个空格替换每行中的子字符串“a”和“the”。这将删除许多单词,但有时这些单词出现在行的开头或结尾,有时候这些单词以大写字母开头。所以,改善你的第一个程序,以便它也可以处理这些情况。
C:>的java移除< verbose.txt> terse.txt
注意:有String类的各种取代()方法,将简化该程序。尝试写这个程序而不使用它们。
输入文件:
一种新颖的是一个长的散文叙述,描述了虚构 人物和事件,通常以连续的故事的形式。 该体裁在中世纪和早期的现代浪漫和中篇小说传统领域具有历史根源。
代码:
import java.util.Scanner;
import java.io.*;
class File_Compressor
{
public static void main(String[]args) throws IOException
{
int loc=0;
String line="";
File input=new File ("input.txt");
Scanner scan=new Scanner(input);
File output=new File("Hello2.java");
PrintStream print=new PrintStream(output);
while (scan.hasNext())
{line=scan.nextLine().trim();
while(line.indexOf("A")>0||line.indexOf("The")>0||line.indexOf(" a")>0||line.indexOf(" the ")>0)
{
if (line.indexOf("A")>0)
{loc=line.indexOf("A");
line=line.substring(loc+1);}
else if (line.indexOf("The")>0)
{loc=line.indexOf("The");
line=line.substring(loc+3);
}
else if (line.indexOf(" a ")>0)
{loc=line.indexOf(" a ");
left=line.substring(0,loc+1);
right=line.substring(loc+2);
line=left+right;}
else if (line.indexOf(" the ")>0)
{loc=line.indexOf(" the ");
left=line.substring(0,loc+1);
right=line.substring(loc+4);
line=left+right;}
}
print.println(line);
}
}
}
你允许重复使用那些_“类String”_的各种replace()方法的实现吗? ;) – Thomas
另一个注意事项:不要只为''A'',''''和'“a”'查看,或者你可能从像Another,There等字词中删除这些子字符串。 – Thomas