zoukankan      html  css  js  c++  java
  • 第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("此字符串是回纹串!");//输出是回文
            }
        }
    }

    运行结果:

     

  • 相关阅读:
    BZOJ4779: [Usaco2017 Open]Bovine Genomics
    USACO比赛题泛刷
    BZOJ1977: [BeiJing2010组队]次小生成树 Tree
    LOJ #10132. 「一本通 4.4 例 3」异象石
    $O(n+log(mod))$求乘法逆元的方法
    BZOJ2226: [Spoj 5971] LCMSum
    数据库 | Redis 缓存雪崩解决方案
    中间件 | 微服务架构
    数据库 | SQL 诊断优化套路包,套路用的对,速度升百倍
    数据库 | SQL语法优化方法及实例详解
  • 原文地址:https://www.cnblogs.com/zyg777/p/11891738.html
Copyright © 2011-2022 走看看