题目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("此字符串是回纹串!");//输出是回文 } } }
运行结果: