题目1:编写一个应用程序,统计输入的一个字符串中相同字符的个数,并将统计结果输出。
一、源程序
Test.java
/**统计输入的一个字符串中相同字符的个数 * 2个方法 */ package cn.edu.ccut.w1119t1; import java.util.Scanner; public class Test { public static int counter(String str){//统计该字符串出现字符个数 String word1 = str.substring(0, 1);//截取当前串首字符 int num = 0;//累计出现次数 for(int j=0;j<str.length();j++){//遍历当前串 if(str.regionMatches(j, word1, 0, 1)){//在str串的j位置取长度为1的子串和截取子串的0位置取长度1的子串开始比较 num++;//相同为真则累加 } } System.out.print(word1+"的个数为"+num+" ");//将统计结果输出 String str1 = str.replaceAll(word1, " ");//统计后的字符转空格 String str2 = str1.trim();//删除空格 if(str2.length()!=0){ counter(str2);//传回新子串递归统计 }else{//如当前串经遍历长度为0退出方法结束遍历 return 0; } return 0; } public static void main(String[] args) { Scanner reader = new Scanner(System.in); System.out.print("请输入需要统计的一个字符串 "); String str = reader.nextLine();//键盘获取当前行字符串存入str counter(str);//调用counter } }
二、成功界面截图
题目2:编写程序,输入一个字符串,判断该串中的字母能否组成一个回文串(回文串:一个字符串从前向后读取和从后向前读取都一样)。如:ab<c>c?ba
一、源程序
Test.java
/**判断串中字母能否组成回文串 * 2个方法 */ package cn.edu.ccut.w1119t2; import java.util.Scanner; public class Test { static int letter(String s){//判断是否为英文字母 char word[] = new char [1]; word = s.toCharArray();//字符串转字符数组 if(Character.isLetter(word[0])){//为字母返回0 return 1; } return 0; } public static void main(String[] args) { Scanner reader = new Scanner(System.in); System.out.print("请输入需要判断的一个字符串 "); String str = reader.nextLine();//键盘获取输入的一个字符串 int num = 0;//判断参数 int i,j; for(i = 0,j = str.length()-1;i < str.length();){ String word1 = str.substring(i, i+1);//从头取 if(letter(word1)==0){//如果为非字母跳过 i++; continue; } String word2 = str.substring(j, j+1);//从尾取 if(letter(word2)==0){//如果为非字母跳过 j--; continue; } if(word1.equals(word2)){//判等 num++; }else{ num=0; break; } i++;j--; } if(num==0){ System.out.print("该串中的字母不能组成一个回文串 "); }else{ System.out.print("该串中的字母能组成一个回文串 "); } } }
二、成功界面截图