第11次作业--字符串处理

题目1:

编写一个应用程序,统计输入的一个字符串中相同字符的个数,并将统计结果输出。

源代码:Test.java

/* 1.主类Test,主方法main
 * 2.声明字符串str1,创建Count对象count
 * 3.主方法通过接收用户输入的字符串,然后调用getcount方法并传参str1
 * */
package cn.edu.ccut.zfpd;
import java.io.*;
public class Test {
    public static void main(String[] args) throws IOException {
        Reader reader = new InputStreamReader(System.in);
        BufferedReader xReader = new BufferedReader(reader);
        System.out.println("请输入一个字符串:");
        String str1 = xReader.readLine();//接受一个字符串
        System.out.println("用户输入的字符串为:"+str1);//输出用户输入的字符串
        Count count = new Count();//创建累加器类的对象
        count.getcount(str1);//调用count对象下的getcount方法
    }
}

源代码:Count.java

/* 1.主类Count,方法getcount,参数为字符串
 * 2.局部变量i,j,k
 * 3.第一个for遍历字符串,输出字符处出现过的次数,
 * 第二个for判断当前字符之前是否已经比较过
 * 第三个for计算当前字符在字符串中出现过的次数
 * */
package cn.edu.ccut.zfpd;
public class Count {  //累加器类
    public void getcount(String s) {  //方法getcount
        for(int i=0;i<s.length();i++) {  //从0循环字符串
            boolean k = false;//布尔类型k 初值为false
            int count=0; //累加器
            for(int j=0;j<i;j++) {//循环判断当前字符是否和之前判断过的字符相同
                if(s.charAt(i) == s.charAt(j)) {
                     k = true;//如果相同则k的值变为true
                }
            }
            if(k) {//判断是否输出过这个字符,如果输出过就跳过本次循环
                continue;
            }
            for(int j=0;j<s.length();j++) {      //累加器,如果重复出现过就累加1
                if(s.charAt(i) == s.charAt(j)) {
                    count++;
                }
            }
            System.out.println(s.charAt(i)+"出现的次数为:"+count);//输出字符出现过的次数
            }
        

运行结果:

 题目2:

编写程序,输入一个字符串,判断该串中的字母能否组成一个回文串(回文串:一个字符串从前向后读取和从后向前读取都一样)。

源代码:Test.java

/* 1.测试类Test,主方法main
 * 2.声明字符串str1,创建getHuiwen类对象hw
 * 3.主方法通过接收用户输入的字符串,然后调用hw.Huiwen方法并传参str1
 * */
package cn.edu.ccut.pdhy;
import java.io.*;
public class Test {
    public static void main(String[] args) throws IOException {
        Reader reader = new InputStreamReader(System.in);
        BufferedReader xReader = new BufferedReader(reader);
        System.out.println("请输入一个字符串:");
        String str1 = xReader.readLine();//接受一个字符串
        System.out.println("用户输入的字符串为:"+str1);//输出用户输入的字符串
        getHuiwen hw = new getHuiwen();
        hw.Huiwen(str1);
    }
}

源代码:getHuiwen.java

/* 1.主类getHuiwen,方法Huiwen,参数为字符串
 * 2.局部变量i,j,count
 * 3.for循环判断字符串第一个位置和最后一个位置上的字符是否相同,
 * i代表第一个,j代表最后一个,判断后i++,j--,再判断,直到i>=j,中途一旦不相同就break退出循环
 * */
package cn.edu.ccut.pdhy;
public class getHuiwen {
    public void Huiwen(String s1){//判断回文方法
        int count=0;//标记
        for(int i=0,j=s1.length()-1; i<j; i++,j--) {//i代表从前往后,j代表从后往前,判断条件i小于j
            if(s1.charAt(i) != s1.charAt(j)) {//判断对应位置字符是否相同
                count=1;//标记变为1,表示已经不是回文串
                System.out.println("此字符串不是回纹串!");
                break;//一旦不相同就退出循环
            }
        }
        if(count==0) {//标记直到循环正常结束都没改变,则代表是回文串
            System.out.println("此字符串是回纹串!");//输出是回文
        }
    }
}

运行结果:

 

posted @ 2019-11-19 19:11  赵迎港20194660  阅读(164)  评论(0编辑  收藏  举报