网上找来的java代码,不知道怎么回事,有时候括号是中文的,或者有中文的逗号,中文的分号。有时候整段代码都是这样,要想在eclipse中一个个的修改很麻烦。
于是想到了,写一段代码来把错误的中文符号改成正确的英文符号。具体的做法是,一行一行的读入代码,一个字符一个字符的遍历每一行,如果发现中文的符号(比如:中文的左括号'('),就把它替换成英文的左括号,然后放入StringBuffe对象中,其他类似,如果不是这些错误的,就把这个正确的字符放入StringBuffer对象用。扫描结束后,再把StringBuffer对象中修正后的所有字符,重新写入这个文件,覆盖掉原有的文件即可。
下面是中文替换代码:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class CheckChinese
{
static Scanner scanner=new Scanner(System.in);
public static void main(String[] args)
{
//输入文件地址
System.out.print("输入文件地址:");
String filePath=scanner.nextLine();
StringBuffer stringBuffer=checkFileByLines(filePath);
System.out.println(stringBuffer.toString());
write(filePath,stringBuffer.toString());
}
public static StringBuffer checkFileByLines(String fileName)
{
File file = new File(fileName);
BufferedReader reader = null;
try
{
// System.out.println("以行为单位读取文件内容,一次读一整行:");
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
// 一次读入一行,直到读入null为文件结束
StringBuffer stringBuffer=new StringBuffer();
while ((tempString = reader.readLine()) != null)
{
//把这一行中的中文字符替换成英文字符
for(int i=0;i<tempString.length();i++)
{
//把这个字符串中的中文括号换成英文括号
if(tempString.charAt(i)=='(')
stringBuffer.append('(');
else if(tempString.charAt(i)==')')
stringBuffer.append(')');
else if(tempString.charAt(i)==',')
stringBuffer.append(',');
else if(tempString.charAt(i)=='@')
stringBuffer.append('@');
else if(tempString.charAt(i)==';')
stringBuffer.append(';');
else
stringBuffer.append(tempString.charAt(i));
}
stringBuffer.append("\n");
line++;
}
reader.close();
return stringBuffer;
} catch (IOException e)
{
e.printStackTrace();
} finally
{
if (reader != null)
{
try
{
reader.close();
} catch (IOException e1)
{
}
}
}
return null;
}
static public void write(String filename,String string)
{
try
{
File file = new File(filename);
// if file doesnt exists, then create it
if (!file.exists())
{
file.createNewFile();
}
// true = append file
FileWriter fileWritter = new FileWriter(file);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write(string);
bufferWritter.close();
System.out.println("---检查/替换完成!---");
} catch (IOException e)
{
e.printStackTrace();
}
}
}
运行,然后输入有错误的中文符号的源代码的绝对路基名就可以了
也可以打包成可执行的jar包到本地,然后再桌面创建一个快捷方式。以后需要进行符号替换时,只需要点击鼠标运行即可。