学习时候遇到文档中的标点是中文,有时候想拷贝写代码运行看看,无奈代码中标点全部是中文标点,于是自己写了个非常简单的转化工具,不是简单,简直是简陋,但是对于解决具体问题还是非常实用的
代码
package changetoken;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JButton;
import javax.swing.J ;
import javax.swing.JTextField;
public class ChangeToken {
private static Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
private static int width = 400;
private static int height = 300;;
private static int widthLoc = (screenSize.width-width)/2;
private static int heightLoc = (screenSize.height-height)/2;
private static int mode = 0;//1表示将英文标点替换成中文标点,0反之
private String fileFullPath ;
private Map<Character,Character> map = new HashMap<Character,Character>();
public ChangeToken(String fileFullPath) {
this.fileFullPath = fileFullPath;
}
public ChangeToken(String fileFullPath,int mode) {
this.fileFullPath = fileFullPath;
this.mode = mode;
}
public void change(){
initMap();
String start = fileFullPath.substring(0, fileFullPath.lastIndexOf(\'.\'));
String end = fileFullPath.substring(fileFullPath.lastIndexOf(\'.\'));
// File file = new File(start+\"1\"+end);
Reader reader = null;
Writer writer =null;
try {
reader = new InputStreamReader(new FileInputStream(fileFullPath),\"utf-8\");
writer = new OutputStreamWriter(new FileOutputStream(start+\"1\"+end),\"utf-8\");
int i=-1;
while((i = reader.read())>=0){
if(map.keySet().contains((char)i)){
//System.out.println(i);
i = map.get((char)i);
}
writer.write(i);
}
} catch (Exception e) {
e.printStackTrace();
System.err.println(\"未知错误!\");
}finally{
try {
reader.close();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void initMap() {
map.put(\'(\', \'(\');
map.put(\')\', \')\');
map.put(\';\', \';\');
map.put(\'<\', \'<\');
map.put(\'>\', \'>\');
map.put(\'}\', \'}\');
map.put(\'{\', \'{\');
map.put(\'.\', \'.\');
map.put(\',\', \',\');
map.put(\'+\', \'+\');
map.put(\'-\', \'-\');
map.put(\'!\', \'!\');
}
public static void main(String[] args) {
J j = new J (\"changeToken\");
j .setLayout(new BorderLayout());
JTextField field = new JTextField(\"\");
JButton jButton = new JButton(\"start\");
jButton.addMouseListener(new MouseListener2(field));
j .add(field,BorderLayout.NORTH);
j .add(jButton,BorderLayout.CENTER);
j .setLocation(widthLoc,heightLoc);
j .setSize(width, height);
j .setDefaultCloseOperation(J .EXIT_ON_CLOSE);
j .setVisible(true);
}
}
/**
* 继承适配器可以减少不必要的方法
* 实现接口可以提供多一次的继承机会
* @author hgy
*/
class MouseListener2 extends MouseAdapter{
String Text = \"\";
JTextField jtf = null;
public MouseListener2(JTextField field) {
jtf = field;
}
@Override
public void mouseClicked(MouseEvent e) {
new ChangeToken(jtf.getText()).change();
}
}
继续阅读与本文标签相同的文章
上一篇 :
6个超实用的AI小工具
下一篇 :
神经网络 和 NLP —— 结构化输出预测
-
史上最详细Java内存区域讲解
2026-05-19栏目: 教程
-
Hystrix Dashboard:断路器执行监控
2026-05-19栏目: 教程
-
AGV为什么要选择视觉导航
2026-05-19栏目: 教程
-
《Absolute Java 中文版》| 每日读本书
2026-05-19栏目: 教程
-
汽车圈微信聊天记录大曝光
2026-05-19栏目: 教程
