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();
}
}