一、题目
题目1:编写一个应用程序,统计输入的一个字符串中相同字符的个数,并将统计结果输出。
题目2:编写程序,输入一个字符串,判断该串中的字母能否组成一个回文串(回文串:一个字符串从前向后读取和从后向前读取都一样)。如:ab<c>c?ba
二、代码
package wenbowindf.ScamnnerSameString; public class Demo {//借鉴谢晓飞的代码,具体代码流程已虚心向本人学习,且已融会贯通,全部基础代码已注释完毕 public static void main(String[] args) { Palindrome.Palindrome("abcba"); CompareStrings.getNum("老师,请提问我寝室大哥-张九川"); } }
package wenbowindf.ScamnnerSameString; import java.util.Iterator; import java.util.LinkedList; public class CompareStrings {//比较字符串中有多少个相同字符 public static void getNum(String s) { LinkedList<Character> link = new LinkedList<Character>();//创建一个集合link int []num = new int[100] ; //创建一个名为num的100长度的一维数组 int count = 0; //创建一个变量count,赋值初始值0 int index = 0; //创建一个变量index,赋值初始值0 int index1 = 0; //创建一个变量index,赋值初始值0 for(int i = 0; i < s.length(); i++) { //遍历字符串s for(int j = 0; j < s.length(); j++) { if (s.charAt(i)==s.charAt(j)){ //判断s中字母是否相同 count++; //如果i相同的话就count++ } } if(!(link.contains(s.charAt(i)))) { //s中第i位的字母是否在集合link中出现 link.add(s.charAt(i)); //link中没有s中第i位的字母就把该字母装进link num[index++]=count; //把count的值赋给数组num的第index位 } } Iterator<Character> it = link.iterator(); //打印link结合 while(it.hasNext()) { //利用it.hasNext方法,判断link集合里是否有值,有的话就执行下面语句体 System.out.println(it.next()+":"+num[index1++]); //it.next()的意思是返回迭代的下一个元素 index++; } } }
package wenbowindf.ScamnnerSameString; public class Palindrome { public static void Palindrome(String s) { char arry[] = s.toCharArray(); //字符串转化为字符数组 boolean judge = true; //定义一个judge变量为ture int l = arry.length; for(int i =0;i<l;i++) { if(arry[i]!=arry[l-i-1]) {//判断数组里第i位与第l-i-1位是否相同 judge = false; //相同就赋judge为false } } if(judge) { System.out.println(s+"是回文"); }else { System.out.println(s+"不是回文"); } } }
三、运行结果