java 源文件中的中文符号替换成英文符号

网上找来的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包到本地,然后再桌面创建一个快捷方式。以后需要进行符号替换时,只需要点击鼠标运行即可。


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值