运用StringBuffer,String,特别注意抽象和封装的运用
通过程序可维护一段(几行)内容,包括:
增加一行、删除一行、修改一行、替换一行中的某一个字符串、查看编辑区所有内容、退出程序
简化:编辑区行数不超过九行
分两个类 Contents(内容维护类),和TestLineEditor
Contents类维护(保存和修改)编辑区的内容, TestLineEditor类包含main方法提供交互界面(命令行), main方法通过获得用户的输入的命令并根据命令调用行编辑器类的方法来更改编辑区的内容
简单写了部分,供参考:
package com.yelang.case2;
public class Contents {
private StringBuffer contents = new StringBuffer(1024);
private static final String com = "\r\n";
public StringBuffer getContents() {
return contents;
}
public void setContents(StringBuffer contents) {
this.contents = contents;
}
//增加一行
public void addLine(String content) {
int length = this.getContents().toString().split(Contents.com).length;
if(length < 9) {
this.getContents().append(content +Contents.com);
}
}
//删除指定一行
public void removeLine(int index) {
String [] strContents = this.getContents().toString().split(Contents.com);
StringBuffer target = new StringBuffer(1024);
for(int i = 0;i<strContents.length;i++) {
if(i == index) {
continue;
}
target.append(strContents[i]).append(Contents.com);
}
this.setContents(target);
}
//编辑某一行内容
public void editContentByIndex(int index,String content) {
String [] strContents = this.getContents().toString().split(Contents.com);
StringBuffer target = new StringBuffer(1024);
for(int i = 0;i<strContents.length;i++) {
if(i == index) {
target.append(content).append(Contents.com);
}else {
target.append(strContents[i]).append(Contents.com);
}
}
this.setContents(target);
}
//替换某一行内容
public void replaceContentByIndex(int index,String sourceStr,String targetStr) {
//自行补充
}
//查看所有内容
public String showAll() {
return this.getContents().toString();
}
}
package com.yelang.case2;
import java.util.Scanner;
public class TestLineEditor {
public static void main(String[] args) {
Contents c = new Contents();
Scanner scan = new Scanner(System.in);
System.out.println("请输入操作方法(1:新增 2:删除):");
//使用next方式接收
String str = scan.nextLine();
System.out.println("请输入新增的内容"+str);
Scanner scan2 = new Scanner(System.in);
String str1 = scan2.nextLine();
c.addLine(str1);
System.out.println("输出内容:\t"+c.showAll());
//及时关闭IO流的类,否则会一直占用资源
scan.close();
}
}
请输入操作方法(1:新增 2:删除):
1
请输入新增的内容1
kdfldjfkldjfldjfdlfjdlfjdlkfjkj京东客服进度款
输出内容: kdfldjfkldjfldjfdlfjdlfjdlkfjkj京东客服进度款
参考下这个链接
https://b23.tv/EALY6Ah