【分析】
说一下主要思路:
将每个单词(包括句号)进行处理(用rec记录)
当读到空格的时候若rec存储的“单词”首字母为小写且末尾为句点 则标记判断大小写的flag为true,接下来就可以转换大小写,否则不转换
import java.io.*;
public class GrammarChecker {
public static void main(String[] args){
try {
BufferedReader in=new BufferedReader(new FileReader(".txt"));//待改文章
BufferedWriter writer=new BufferedWriter(new FileWriter(".txt"));//输出文章
int temp;
String rec="";
boolean flag=true; //判斷是否要小寫轉換爲大寫
while ((temp=in.read())!=-1){
if(temp=='\n')
writer.write('\n');
else if(temp>='a' && temp<='z'){
if(flag)
writer.write(temp-'a'+'A');
else {
writer.write(temp);
rec+=(char)temp;
}
flag=false;
}
else if(temp>='A' && temp<='Z'){
writer.write(temp);
rec+=(char)temp;
flag=false;
}
else if(temp=='.'){
writer.write(temp);
rec+='.';
}
else if(temp==' '){
writer.write(temp);
char head,tail;
head=rec.charAt(0);
tail=rec.charAt(rec.length()-1);
if(head>='a' && head<='z' && tail=='.')
{
flag=true;
}
//System.out.println(rec);
rec="";
}
else{
writer.write(temp);
}
}
in.close();
writer.close();
}
catch (IOException e){
System.out.println("No this file");
}
}
}