用Eclipse 编程 以下程序代码 (求各位大神帮忙)

编程实现如下功能:
1、编写类Format,用于格式化输出字符串
定义并实现方法:
public String format(String msg,int lineSize);
参数含义分别为:要格式化的字符串,每行显示的字符个数
调用format("这是一个测试语句。",5)后的字符效果:
这是一个测
试语句
2、编写Format的子类WarpFormat重新实现format方法,效果为:
***************
*这是一个测 *
*试语句 *
***************
3、编写Format的子类SeqFormat重新实现format方法,效果为:
(1).这是一个测试
(2).语句
4、编写类PrintFormat,用于格式化输出字符
实现print(String msg,WarpFormat format)
print(String msg,SeqFormat format)
编写main方法测试不同的输出效果。
5、修改参数类型,使用父类型作为参数类型,并编写新类型HtmlFormat,格式:
<span>这是一个测</span>
<span>试语句</span>
编码测试类型的输出效果。

第1个回答  2012-02-22
public class Format {
public enum E_Format{
format,
WarpFormat,
SeqFormat,
HtmlFormat
}
class PrintFormat
{
public void print(String s, E_Format f,int c)
{
String rs = "";
switch(f)
{
case format:
rs = format(s,c);
break;
case WarpFormat:
rs = WarpFormat(s,c);
break;
case SeqFormat:
rs = SeqFormat(s,c);
break;
case HtmlFormat:
rs = HtmlFormat(s,c);
break;
default:
rs = s;
break;
}
p(rs);
}
}

public void Test(String s,int c)
{
PrintFormat pf = new PrintFormat();
pf.print(s, E_Format.format, c);
pf.print(s, E_Format.WarpFormat, c);
pf.print(s, E_Format.SeqFormat, c);
pf.print(s, E_Format.HtmlFormat, c);
}
/**
* @param args
*/
public static void main(String[] args) {
//p("Oh , no no no?\n\n");
Format f = new Format();
String s = "test and print text!";
f.Test(s,5);
}
public static void p(String s)
{
System.out.println(s);
}
public String format(String s,int c)
{
StringBuilder sb = new StringBuilder();
if (c < s .length())
{
for( int i=0; i<s.length(); i+=c)
{
int e = i + c;
if (e>=s.length()){ e = s.length()-1;}
sb.append(s.substring(i, e));
sb.append("\n");
}
}else{ sb.append(s);}
return sb.toString();
}
public String SeqFormat(String s,int c)
{
StringBuilder sb = new StringBuilder();
if (c < s .length())
{
int idx = 1;
for( int i=0; i<s.length(); i+=c)
{
int e = i + c;
if (e>=s.length()){ e = s.length()-1;}
sb.append("("+idx+")");
sb.append(s.substring(i, e));
sb.append("\n");
idx++;
}
}else{ sb.append(s);}
return sb.toString();
}
public String HtmlFormat(String s,int c)
{
StringBuilder sb = new StringBuilder();
if (c < s .length())
{
int idx = 1;
for( int i=0; i<s.length(); i+=c)
{
int e = i + c;
if (e>=s.length()){ e = s.length()-1;}
sb.append("<span>");
sb.append(s.substring(i, e));
sb.append("</span>\n");
idx++;
}
}else{ sb.append(s);}
return sb.toString();
}
public void addChar(StringBuilder sb,char f,int c,Boolean bLine)
{
for(int i=0;i<c;i++) sb.append(f);
if(bLine)sb.append("\n");
}
public String WarpFormat(String s,int c)
{
StringBuilder sb = new StringBuilder();
if (c < s .length())
{
addChar(sb,'*',c+2,true);
for( int i=0; i<s.length(); i+=c)
{
int e = i + c;
if (e>=s.length()){ e = s.length()-1;}
sb.append("*");
sb.append(s.substring(i, e));
if (e-i<c){ addChar(sb,' ', c-(e-i),false);}
sb.append("*\n");
}
addChar(sb,'*',c+2,true);
}else{ addChar(sb,'*',c+2,true);
sb.append(s);addChar(sb,'*',c+2,true);
}
return sb.toString();
}
}
相似回答