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

目录
相关文章
|
16天前
|
Java
Java 字符串分割split空字符串丢失解决方案
Java 字符串分割split空字符串丢失解决方案
|
1月前
|
算法 Java 程序员
Java检查字符串是否为回文
Java检查字符串是否为回文
|
1月前
|
存储 Java
Java 编程实例:相加数字、计算单词数、字符串反转、元素求和、矩形面积及奇偶判断
Java中相加两个数字可通过简单赋值实现,如`int sum = x + y;`。若要用户输入数字相加,可使用`Scanner`类读取。计算单词数,可使用`split()`方法或`StringTokenizer`类。反转字符串,可用`for`循环或`StringBuilder`的`reverse()`方法。计算数组元素总和,可遍历数组累加。矩形面积通过长度乘以宽度得出。判断奇偶性,利用模2运算或位运算检查最低位。更多内容,可关注微信公众号`Let us Coding`。
49 0
|
1月前
|
存储 Java
JAVA字符串与其他类型数据的转换
JAVA字符串与其他类型数据的转换
28 4
|
1月前
|
Java
java面向对象高级分层实例_实体类
java面向对象高级分层实例_实体类
10 1
|
13天前
|
Java Shell
Java 21颠覆传统:未命名类与实例Main方法的编码变革
Java 21颠覆传统:未命名类与实例Main方法的编码变革
13 0
|
18天前
|
Java
Java练习题-键盘录入字符串实现大小写转换
Java练习题-键盘录入字符串实现大小写转换
20 2
|
19天前
|
存储 安全 Java
Java中实现高效的字符串拼接技术
【4月更文挑战第6天】在Java编程中,字符串拼接是一个常见的操作。然而,由于字符串的不可变性,频繁的拼接操作可能会导致性能问题。本文将探讨Java中实现高效字符串拼接的技术,包括使用StringBuilder类、StringBuffer类以及Java 8中的StringJoiner类。通过对比这些技术的优缺点,我们将为您提供在不同场景下选择合适的字符串拼接方法的建议。
|
27天前
|
Java
java 8 数组转字符串并以逗号分隔
java 8 数组转字符串并以逗号分隔
11 0