Java 字符串 之 字符串 记事本实例

简介:

http://www.verejava.com/?id=17159658585531

import java.util.Scanner;

public class Test {
    
    private Scanner in;
    private StringBuffer sb = new StringBuffer();
    private boolean flag = true;
    private String clipBoard;//剪贴板

    public Test() {
        in = new Scanner(System.in);
        System.out.println("1 : 键盘输入编辑文字");
        System.out.println("2 : 追加文字");
        System.out.println("3 : 插入文字 (索引号:要插入的文字)");
        System.out.println("4 : 替换文字 (要替换的文字:新文字)");
        System.out.println("5 : 查找文字(返回找到的文字的索引号)");
        System.out.println("6 : 删除文字(开始索引号:结束索引号)");
        System.out.println("7 : 复制文字 (开始索引号:结束索引号)");
        System.out.println("8 : 粘贴文字(索引号)");
        System.out.println("9 : 剪切文字(开始索引号:结束索引号)");
        System.out.println("10 : 转换成大写");
        System.out.println("11 : 转换成小写");
        System.out.println("12 : 文字反转");
        System.out.println("-1 : 退出编辑");

        while (flag) {
            String key = in.nextLine();
            if ("1".equals(key)) {
                input();
            }
            if ("-1".equals(key)) {
                exit();
            }
            if ("2".equals(key)) {
                append();
            }
            if ("3".equals(key)) {
                insert();
            }
            if ("4".equals(key)) {
                replace();
            }
            if ("5".equals(key)) {
                search();
            }
            if ("6".equals(key)) {
                delete();
            }
            if ("7".equals(key)) {
                copy();
            }
            if ("8".equals(key)) {
                paste();
            }
            if ("9".equals(key)) {
                cut();
            }
            if ("10".equals(key)) {
                toUpperCase();
            }
            if ("11".equals(key)) {
                toLowerCase();
            }
            if ("12".equals(key)) {
                rerverse();
            }

            System.out.println("记事本当前文本:" + sb.toString());
        }
    }

    private void rerverse() {
        sb.reverse();
    }

    private void toLowerCase() {
        String buffer = sb.toString();
        buffer = buffer.toLowerCase();
        sb.delete(0, sb.length());
        sb.append(buffer);
    }

    private void toUpperCase() {
        String buffer = sb.toString();
        buffer = buffer.toUpperCase();
        sb.delete(0, sb.length());
        sb.append(buffer);
    }

    private void cut() {
        System.out.println("请输入要剪切文字(开始索引号:结束索引号)");
        String text = in.nextLine();
        String[] texts = text.split(":");
        int startIndex = Integer.parseInt(texts[0]);
        int endIndex = Integer.parseInt(texts[1]);
        clipBoard = sb.substring(startIndex, endIndex);
        //删除记事本文字
        sb.delete(startIndex, endIndex);
    }

    private void paste() {
        System.out.println("请输入要粘贴文字(索引号)");
        String text = in.nextLine();
        int index = Integer.parseInt(text);
        //粘贴
        sb.insert(index, clipBoard);
    }

    private void copy() {
        System.out.println("请输入要复制文字 (开始索引号:结束索引号)");
        String text = in.nextLine();
        String[] texts = text.split(":");
        int startIndex = Integer.parseInt(texts[0]);
        int endIndex = Integer.parseInt(texts[1]);
        clipBoard = sb.substring(startIndex, endIndex);
    }

    private void delete() {
        System.out.println("请输入要删除文字(开始索引号:结束索引号)");
        String text = in.nextLine();
        String[] texts = text.split(":");
        int startIndex = Integer.parseInt(texts[0]);
        int endIndex = Integer.parseInt(texts[1]);
        //删除
        sb.delete(startIndex, endIndex);
    }

    private void search() {
        System.out.println("请输入要查找文字(返回找到的文字的索引号)");
        String text = in.nextLine();
        int index = sb.indexOf(text);
        if (index >= 0) {
            System.out.println(text + " 索引号:" + index);
        } else {
            System.out.println(text + " 不存在");
        }
    }

    private void replace() {
        System.out.println("请输入要替换文字 (要替换的文字:新文字)");
        String text = in.nextLine();
        String[] texts = text.split(":");
        String oldText = texts[0];
        String newText = texts[1];
        //替换
        String buffer = sb.toString();
        buffer = buffer.replace(oldText, newText);
        sb.delete(0, sb.length());//清空记事本文字
        sb.append(buffer);
    }

    private void insert() {
        System.out.println("请输入要插入的文字: (索引号:要插入的文字)");
        String text = in.nextLine();
        String[] texts = text.split(":");
        int index = Integer.parseInt(texts[0]);
        String str = texts[1];
        //插入文字
        sb.insert(index, str);
    }

    private void append() {
        System.out.println("请输入要追加文字:");
        String text = in.nextLine();
        //追加文字
        sb.append(text);
    }

    private void exit() {
        flag = false;
        System.exit(0);//退出应用程序
    }

    private void input() {
        System.out.println("请输入要编辑的文字:");
        String text = in.nextLine();
        //添加到 sb 记事本的缓冲区
        sb.append(text);
    }

    public static void main(String[] args) {
        new Test();
    }
}

http://www.verejava.com/?id=17159658585531

目录
相关文章
|
7天前
|
SQL JSON Java
告别字符串拼接:用Java文本块优雅处理多行字符串
告别字符串拼接:用Java文本块优雅处理多行字符串
198 108
|
3月前
|
SQL JSON Java
告别拼接噩梦:Java文本块让多行字符串更优雅
告别拼接噩梦:Java文本块让多行字符串更优雅
382 82
|
18天前
|
存储 Java 关系型数据库
Java 项目实战基于面向对象思想的汽车租赁系统开发实例 汽车租赁系统 Java 面向对象项目实战
本文介绍基于Java面向对象编程的汽车租赁系统技术方案与应用实例,涵盖系统功能需求分析、类设计、数据库设计及具体代码实现,帮助开发者掌握Java在实际项目中的应用。
40 0
|
3月前
|
自然语言处理 Java Apache
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
234 14
|
3月前
|
安全 Java 测试技术
Java 大学期末实操项目在线图书管理系统开发实例及关键技术解析实操项目
本项目基于Spring Boot 3.0与Java 17,实现在线图书管理系统,涵盖CRUD操作、RESTful API、安全认证及单元测试,助力学生掌握现代Java开发核心技能。
111 1
|
4月前
|
人工智能 Java 开发者
【Java实例-简易计算机】使用Java实现简单的计算机案例
一个简单的Java案例——“简易计算器”,帮助编程新手快速上手。通过实现用户输入、基本逻辑运算和结果输出,学习者可以掌握变量声明、Scanner对象使用、控制流语句等关键知识点。文章分为设计思路、关键知识点、完整代码和测试运行四个部分。
130 9
【Java实例-简易计算机】使用Java实现简单的计算机案例
|
5月前
|
Java 测试技术 项目管理
【JavaEE】从 0 到 1 掌握 Maven 构建 Java 项目核心技巧 解锁 Java 项目高效管理实用实例
本文从Maven基础概念讲起,涵盖安装配置、核心概念(如POM与依赖管理)及优化技巧。结合Java Web项目实例,演示如何用Maven构建和管理项目,解决常见问题,助你高效掌握这一强大工具,提升Java开发与项目管理能力。适合初学者及进阶开发者学习。资源链接:[点此获取](https://pan.quark.cn/s/14fcf913bae6)。
170 6
|
4月前
|
Java 开发者
【Java实例-神秘年龄】用Java挑战你的直觉
我们一起走进这款款简单却充满趣味的Java小游戏——“神秘年龄”。这款游戏不仅适合编程初学者作为练习项目,也能为有一定基础的开发者提供一个轻松的编程小憩。
45 0
【Java实例-神秘年龄】用Java挑战你的直觉
|
4月前
|
Java 开发者
【Java实例-神秘硬币】用Java投掷你的幸运硬币,你是猜正还是反?
本文分享了一个简单有趣的编程案例——猜硬币正反面游戏。通过模拟抛硬币(0为正面,1为反面),用户输入猜测值,程序判断结果并输出。
110 0
【Java实例-神秘硬币】用Java投掷你的幸运硬币,你是猜正还是反?