编写程序,统计出字符串“want you to kbow one thing”中字n和字母o出现次数。
对于本程序而言,最简单的操作方式就是直接在主方法里面定义一个操作,或者直接定义一个新的类。
范例:定义一个单独的处理类
class JavaDemo
{
public static void main(String[] args)
{
for(int x = 0;x < StringUtil.count("want you to know one thing").length;x++){
if (x == 0)
{
System.out.println("n的个数为"+StringUtil.count("want you to know one thing")[x]);
}else if(x == 1){
System.out.println("o的个数为"+StringUtil.count("want you to know one thing")[x]);
}
}
}
}
class StringUtil
{
//返回第一个内容为字母n的个数,第二个内容为字母o的个数
public static int[] count(String str){
int[] countData = new int[2]; //用于存储n于o的个数
char[] data = str.toCharArray(); //将字符串变成字符数组
for(int x = 0;x < data.length;x++){ //用for循环遍历数组并判断记录次数
if(data[x] == 'n'){
countData[0] = countData[0] + 1;
}else if(data[x] == 'o'){
countData[1] = countData[1] + 1;
}
}
return countData;
}
}
以上解决方案严格来说只是一种顺序式的思维模式解决的,假设说现在统计的是字母o或者n的个数,还有可能要进行各种其他统计的设计。
class JavaDemo
{
public static void main(String[] args)
{
StringCount SC = new StringCount("want you to know one thing");
System.out.println(SC.getInfo());
}
}
class StringUtil{
private String content; //需要保存字符串
public StringUtil(String content){
this.content = content;
}
public String getContent(){
return this.content;
}
public String getInfo(){ //默认的信息返回
return this.getContent();
}
}
class StringCount extends StringUtil
{
private int nCount;
private int oCount;
public StringCount(String content){
super(content);
this.countChar();//实例化构造方法时自动调用countChar计算并记录结果
}
//计算StringUtil中所需要的结果并存储
public void countChar(){
char[] data = super.getInfo().toCharArray(); //将字符串变成字符数组
for(int x = 0;x < data.length;x++){ //用for循环遍历数组并判断记录次数
if(data[x] == 'n'){
this.nCount++;
}else if(data[x] == 'o'){
this.oCount++;
}
}
}
//把存储的数据返回
public int getNCount(){
return this.nCount;
}
public int getOCount(){
return this.oCount;
}
public String getInfo(){
return "n的个数为"+this.nCount+"\to的个数为"+this.oCount;
}
}
任何方案都可以,如果采用第一种方案比较直观,但是第二种方案比较适合结构化设计。