首页 > 其他分享 >婴语翻译器

婴语翻译器

时间:2024-12-30 10:32:29浏览次数:3  
标签:String 翻译器 binaryString add 婴语 lowerTextArea new upperTextArea

婴语翻译器

用Java写的一个非常简单的程序,可以将一句话翻译成啊吧啊吧,使用了Java Swing。

一. UI

UI 使用java 的Swing组件,上下两个JTextArea ,两个button。
两个时间监听,获取上面文本框的内容加密后输出到下面文本框,获取下面文本框的内容解密后输出到上面文本框。

public class EncryptionDecryptionGUI extends JFrame {

    private final JTextArea upperTextArea;
    private final JTextArea lowerTextArea;

    public EncryptionDecryptionGUI() {
        setTitle("啊吧翻译器 @jinnanDu");
        setSize(800, 1000);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        // 设置字体
        Font font = new Font("SimSun", Font.PLAIN, 16);


        // 创建并添加上面的文本
        upperTextArea = new JTextArea(5, 20);
        upperTextArea.setLineWrap(true);
        upperTextArea.setWrapStyleWord(true);
        upperTextArea.setPreferredSize(new Dimension(500, 120));
        upperTextArea.setFont(font);
        JPanel upperPanel = new JPanel();
        upperPanel.add(new JLabel("输入加密:"));
        upperPanel.add(upperTextArea);
        add(upperPanel, BorderLayout.NORTH);

        // 创建并添加下面的文本
        lowerTextArea = new JTextArea(10, 25);
        lowerTextArea.setLineWrap(true);
        lowerTextArea.setWrapStyleWord(true);
        lowerTextArea.setPreferredSize(new Dimension(500, 750));
        lowerTextArea.setFont(font);


        JScrollPane lowerScrollPane = new JScrollPane(lowerTextArea);
        add(lowerScrollPane, BorderLayout.CENTER);
        JPanel lowerPanel = new JPanel();
        lowerPanel.add(new JLabel("输入解密:"));
        lowerPanel.add(lowerTextArea);
        add(lowerPanel, BorderLayout.CENTER);



        // 创建并添加按钮
        JButton encryptButton = new JButton("加密");
        JButton decryptButton = new JButton("解密");
        abaaba ab = new abaaba();
        encryptButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String upInput = upperTextArea.getText();
                String lowShow = ab.encryAba(upInput);
                lowerTextArea.setText(lowShow);
            }
        });

        decryptButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String lowInput = lowerTextArea.getText();
                String upShow = ab.decryAba(lowInput);
                upperTextArea.setText(upShow);
            }
        });

        JPanel buttonPanel = new JPanel();
        buttonPanel.add(encryptButton);
        buttonPanel.add(decryptButton);
        add(buttonPanel, BorderLayout.SOUTH);

        setVisible(true);
    }
}

二. Encryption&Decryption

程序非常简单,核心就是以下加密解密两个方法。

  • 加密:将字符串二进制表示转换为由中文字符'吧'和'啊'组成的字符串。
  • 解密:将啊吧转换为人类可读的字符串。
//将字符串转换为二进制
    public String encryAba(String chineseString){
        if(chineseString.isEmpty()){
            throw new NullPointerException("加密的数据不能为空");
        }
        byte[] bytes = chineseString.getBytes();
        StringBuilder binaryString = new StringBuilder();
        for (byte b : bytes) {
            // 将每个字节转换为8位二进制字符串
            for (int i = 7; i >= 0; i--) {
                binaryString.append((b & (1 << i))!= 0? '吧' : '啊');
            }
        }
        return binaryString.toString();
    }
public String decryAba(String aba){
        if(aba.isEmpty()){
            throw new NullPointerException("解密的数据不能为空");
        }
        StringBuilder binaryString = new StringBuilder();
        for (char c : aba.toCharArray()) {
            if (c == '啊') {
                binaryString.append('0');
            } else if (c == '吧') {
                binaryString.append('1');
            }
        }
        if (binaryString.length() % 8!= 0) {
            throw new IllegalArgumentException("二进制字符串长度必须是8的倍数");
        }

        byte[] bytes = new byte[binaryString.length() / 8];
        for (int i = 0; i < binaryString.length(); i += 8) {
            String byteBinary = binaryString.substring(i, i + 8);
            bytes[i / 8] = (byte) Integer.parseInt(byteBinary, 2);
        }
        return new String(bytes);
    }

三. Package

打包成jar,再使用Launch4j将jar转换为windows 可执行的exe。
双击执行,效果如下:

标签:String,翻译器,binaryString,add,婴语,lowerTextArea,new,upperTextArea
From: https://www.cnblogs.com/jinnandu/p/18636008

相关文章

  • AI狗语翻译器:揭秘跨物种沟通新科技,助力人宠心灵相通
    AI狗语翻译器、谷歌发布语音AI:traini的团队下了大功夫,他们邀请了宠物行为学专家,一起翻译狗狗的各种表情、行为和叫声,建立了一套宠物语义系统。可以确认AI狗语翻译器的开发团队确实下了大功夫,并且他们邀请了宠物行为学专家,一起翻译狗狗的各种表情、行为和叫声,建立了一套宠物......
  • 同声传译app哪个好免费?5款旅行必备的实时翻译器
    暑假快到了,不得不说暑假就是要好朋友出去玩啊,谁还一整天都待在家里呢?若条件允许,跨出国门,领略异国风情,也是一个不错的选择。但语言障碍常常成为许多人心中的顾虑,担心自己的口语水平不足以畅游无忧。别担心,下面就为大家提供解决方案。今天给大家整理归纳了5个出国旅游必备的同......
  • IBM DB2 和 Oracle SQLJ 翻译器在哪里?
    一年前我一直在开发一个Java项目,并使用CodehausMojoSQLJPlugin将.sqlj文件翻译为可访问的Java类。由于我保存了旧的版本库,我看到以下<plugin>被插入到我的pom.xml中:<plugin>?<build>;<插件>;<plugin>;<groupId>o......
  • [分享]OffensiveCon24 UEFI 和翻译器的任务:使用跨架构 UEFI Quines 作为 UEFI 漏洞开
    链接:OffensiveCon24-uefi-task-of-the-translator目录x64assemblyx64程序集x64assemblysourcecodeforBGGP4entry:bggp4winningentry-x64assemblysourcecodeBGGP4UEFISelf-replicatingapp:bggp4winningentry-UEFIself-replicatingapp,compiledfromx64......
  • 如何看待语音翻译在线翻译器?探索实时翻译的表现
    大家出门在外,相信多多少少都曾有机会体验与外国人交流,只是语言障碍让沟通变得不是那么顺利。好在还有语音翻译功能可以帮忙。这个功能还是很方便的,就比如你在国外旅行遇到当地人时,只需打开手机,启动语音翻译功能,即可实现翻译,从而畅快交流。这种便捷的体验,让人们更加愿意探索世......
  • CSCI 2122实现二进制翻译器
    CSCI2122任务4截止日期:2024年3月22日星期五晚上11:59,通过git提交目标本课业的目的是练习用C进行编码,并强化中讨论的概念关于程序表示的类。在这个任务1中,您将实现一个二进制翻译器2,如Rosetta3。您的程序将从翻译一个简单的指令集(比x86简单得多)到x86并生成x86汇编代码。代码将......
  • 【挖坑】想做个守望先锋的聊天框翻译器
    0前言众所周知,OW没有国服之后,大家都是去外面玩的,所以聊天框都是外国人在聊天,如果都说英文的话其实还能接受,但是棒子语就看不懂了。于是这就导致了:在游戏里,虽然想喷队友,却因为语言不同,让一切变得儒雅随和。这种情况亟待解决!所以一个好的翻译软件似乎很重要。0.1可能的难点之......
  • 基于百度API的文本翻译器实现
    软件构造的小实验,现给出源码造福未来学弟依赖<!--https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp--><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.9.1</......
  • 使用 openai 翻译器
    1.下载openai翻译器 https://github.com/yetone/openai-translator  我在release界面下下载.msi安装包,下载好双击安装即可2.申请openaiAPIkey https://platform.openai.com/account/api-keys要获取openaiAPIkey相对容易。但是免费试用只有一个月,如何升级成付......
  • 面向特定领域的机器翻译时是否应该使用特定的翻译器
    最近需要对科技类文章做自动的机器翻译,第一想法就是google翻译和baidu翻译,不过考虑到需要翻译的文章都是科技类的文章,所以就有了本文的思考,那就是面向特定领域的机器翻译时......