课时68:案例分析三(字符串统计)
01. 定义一个单独的处理类
对于程序而言,最简单的操作方法就是直接在主方法里面定义一个操作,或者直接定义一个新的类进行处理。
范例:定义一个单独的处理类。
class StringUtil { //返回的第一个内容为字母n的个数,第二个内容为字母o的个数 Public static int [] count(String str) { int count Data [] =new int [2]; Char [] data = str.toCharArray(); // 将字符串变为字母数组 for (int x = 0 ; x < data.length ; x ++){ if (data[x] == 'n' || data[x] == 'N'){ countData[0] ++; } if (data[x] == 'o' || data[x] == 'O'){ countData[1] ++; } } return countData; } } Public class JavaDemo { Public static void main(String args[]){ String str = "want you to know one thing" ; int result [] = StringUtil.count(str) ; System.out.println("字母n的个数:" + result[0]) ; System.out.println("字母o的个数:" + result[1]) ; } }
这个解决方案只是一种顺序式的思维模式解决的,假设说现在统计的是字母o或者n的个数,那么还有可能以后进行各种其他统计的设计。
02. 面向对象、继承
字符串统计操作:
StringUtill : 字母统计、单词统计、Xxx统计。可通过继承的方案来实现。
字母统计:根据当前需求统计处理。
class StringUtil { private String countent ; //需要保存字符串 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(); //构造方法统计 } Public void countChar(){ Char [] data = super.getContent.toCharArray(); for (int x = 0 ; x < data.length ; x ++){ if (data[x] == 'n' || data[x] == 'N'){ this.nCount ++; } if (data[x] == 'o' || data[x] == 'O'){ this.oCount ++; } } } Public int getNCout() { return this.nCount ; } Public int getOCout() { return this.oCount ; } Public String getInfo() { return "字母n的个数:" + this.nCount +"、字母o的个数:" + this.oCount; } } Public class JavaDemo { Public static void main(String args[]){ StringCount sc = new StringCount("want you to know one thing"); System.out.println(sc.getInfo()) ; } }
任何方案都可以,但第一种方案比较直观,第二种方案更加适合于结构化设计。