春风化雨是什么意思?:请大家帮我看一道java的题目

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 07:55:17
import java.io.*;
import java.lang.*;
class Editor
{private int TotalLine=9;
private int CurrentLine=0;
private StringBuffer[] myeditor;
public Editor()

{myeditor=new StringBuffer[TotalLine];
for(int i=0;i<this.TotalLine;i++)
myeditor[i]=new StringBuffer();
}

public void menushow()
{
System.out.println("**************************************************");
System.out.println("增加一行 a newLineString");
System.out.println("删除一行 d linenum");
System.out.println("修改一行 m linenum newLineString");
System.out.println("替换一行中的某一个字符串 r linenum oldString newString");
System.out.println("查看编辑区所有内容 l");
System.out.println("**************************************************");
}
public void editorAppend(StringBuffer newString)
{int j=newString.length();
if(this.CurrentLine>=TotalLine)
{System.out.println("已经超出编辑区!");
return;
}
else
{myeditor[this.CurrentLine].append(newString);//复制字符串this.CurrentLine++;
}
}public void delete(int linenum)
{if(linenum>=TotalLine)
{System.out.println("超出编辑区!");
return;
}
else
{
for(int j=linenum;j<=TotalLine;j++)
{myeditor[j]=myeditor[j+1];
}
}
this.CurrentLine--;
}
public void modifyLine(int linenum, String newcontent)
{int j=myeditor.length;
myeditor[linenum].replace(0,j,newcontent);
}
public void list()
{
for(int j=0;j<=9;j++)
{
System.out.println(myeditor[j]);
}
}
public void replace(int linenum,String s,String d)
{
int j;
j=myeditor[linenum].indexOf(s);
int k=s.length();
while(j!=-1)
{
j=myeditor[linenum].indexOf(s);
myeditor[linenum].replace(j,k,d);
}
System.out.println("替换完成");
}
public static void main(String args[])
{
int t;
String s="";
Editor editor1;
StringBuffer xx=new StringBuffer();
editor1=new Editor();
editor1.menushow();
System.out.println("please enter the order char:");
try
{BufferedReader in=
new BufferedReader(new InputStreamReader(System.in));
s= in.readLine();
}catch(IOException e){};
String[] firststr=s.split("");
char c=firststr[1].charAt(0);
if(firststr[2]!=null) {t=firststr[2].length();
xx.getChars(0,t,firststr[2],0);} //提取输入内容
switch(c)
{
case 'a': {editor1.editorAppend(xx);System.out.println("The newline is:"+xx);break;}
case 'd': { int linenumber=Integer.parseInt(xx,0);editor1.delete(linenumber);break; }
case 'm': {String[] str=xx.split("");
int line=Integer.parseInt(str[1]);
String newString1=str[2];
if(str[1]!=null) editor1.modifyLine(line,newString1);break; }
case 'r': {String[] str=xx.split("");
int line=Integer.parseInt(str[1]);
String old=str[2];
String news=str[3];
if((str[1]!=null)&&(old!=null)) editor1.replace(line,old,news);break; }
case 'l': {editor1.list();break;}}
}
}
该题目是实现一个行编辑器。我编的东西请大家帮我看看哪里出错了。然后把修改后能运行的答案告诉我,有效期3天。具体要求如下:
一个编辑器可以对编辑的内容进行修改,比如记事本,Word都可以认为具有全屏幕编辑功能。和全屏幕编辑器不同,一个行编辑器以行为单位采用命令(命令动词可由程序设计者定义)来对内容进行编辑。本实验要求以命令行的方式编辑一块存储区,要求具有以下功能:
增加一行
删除一行
修改一行
将一行中的某一个字符串全部替换为一个新的字符串
查看编辑区所有内容
退出程序
为简单:有如下假设
(1)编辑区不超过9行
(2)第一行行号为0
(3)命令规定如下(注意在一行输入命令动词及内容)
 增加一行 a newLineString
 删除一行 d linenum
 修改一行 m linenum newLineString
 替换一行中的某一个字符串 r linenum oldString newString
 查看编辑区所有内容 l