实现字符和Unicode码互换 (Java经典编程案例)

本文介绍了一种在Java中实现字符与Unicode编码互换的方法,通过界面操作,用户可以输入字符,程序将输出对应的Unicode编码,反之亦然。此功能通过按钮触发事件,分别处理字符转码和码转字符的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Unicode是一种字符编码,它可以显示各国语言的各种文字,标点,制表符等所有字符,也是现今最通用的字节编码系统。

本例子将在界面中 实现字符和Unicode码互换,代码如下:

package mytest;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.NumberFormat;

import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;

public class Example extends JFrame {

    private JPanel contentPane;
    private JTextField charInputField;
    private JTextField codeOutputField;
    private JFormattedTextField codeInputField;
    private JTextField charOutputField;

    public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Example frame = new Example();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    //Create the frame.
    public Example() {
        setTitle("\u5B57\u7B26\u4E0E\u7F16\u7801\u8F6C\u6362");//字符与编码转换
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 171);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JPanel panel = new JPanel();
        panel.setBorder(new TitledBorder(null,
                "\u5B57\u7B26\u4E0EUnicode\u7801\u8F6C\u6362",
                TitledBorder.LEADING, TitledBorder.TOP, null, new Color(59, 59,
                59)));
        contentPane.add(panel, BorderLayout.CENTER);
        panel.setLayout(new GridLayout(0, 3, 5, 20));

        charInputField = new JTextField();
        panel.add(charInputField);
        charInputField.setColumns(10);

        JButton codeButton = new JButton("\u8F6C\u6362\u4E3AUnicode\u7801");//转换为Unicode码
        codeButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                do_codeButton_actionPerformed(e);
            }
        });
        panel.add(codeButton);

        codeOutputField = new JTextField();
        codeOutputField.setEditable(false);
        panel.add(codeOutputField);
        codeOutputField.setColumns(10);

        codeInputField = new JFormattedTextField(NumberFormat.getIntegerInstance());
        panel.add(codeInputField);
        codeInputField.setColumns(10);

        JButton charButton = new JButton("\u8F6C\u6362\u4E3A\u5B57\u7B26");
        charButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                do_charButton_actionPerformed(e);
            }
        });
        panel.add(charButton);

        charOutputField = new JTextField();
        charOutputField.setEditable(false);
        panel.add(charOutputField);
        charOutputField.setColumns(10);
    }

    protected void do_codeButton_actionPerformed(ActionEvent e) {
        String text = charInputField.getText();// 获取用户输入的字符串
        char[] charArray = text.toCharArray();// 获取字符串的字符数组
        StringBuilder builder = new StringBuilder();// 创建字符串构建器
        for (char c : charArray) {// 遍历字符数组
            builder.append((int) c + " ");// 连接各字符的编码
        }
        codeOutputField.setText(builder.toString());// 结果输出到文本框
    }

    protected void do_charButton_actionPerformed(ActionEvent e) {
        Number value = (Number) codeInputField.getValue();// 获取用户输入Unicode编码
        long code = value.longValue();// 取输入数字的Long类型值
        charOutputField.setText(((char) code) + "");// 输出编码到文本框
    }
}

执行结果如下图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据知道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值