一、题目1
编写一个应用程序,统计输入的一个字符串中相同字符的个数,并将统计结果输出。
二、代码
Test.java
/* * 创建一个测试类,输入一个字符串,然后依次截取出字符串里的每个字符, * 依次比较,计算其出现的次数,并打印输出 */ package g; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner reader = new Scanner(System.in); System.out.println("请输入一串字符串"); String str=reader.nextLine(); for(int i=0;i<str.length();i++){ int sum=0; String str1=str.substring(i, i+1);//截取str字符串每个字符 if(str.indexOf(str1)==i){//判断检索截取的字符第一次出现的位置 for(int j=0;j<str.length();j++){ if(str.regionMatches(j, str1, 0, 1)){//在str串的j位置取长度为1的子串和截取子串的0位置取长度1的子串开始比较 sum++; } } System.out.println(str1+"的字符个数为:"+sum); } } } }
三、运行结果
一、题目2
编写程序,输入一个字符串,判断该串中的字母能否组成一个回文串(回文串:一个字符串从前向后读取和从后向前读取都一样)。如:abcba
二、代码
Test3.java
/* * 创建一个测试类,输入一串字符,创建stringbuffer对象,用逆置方法逆置并与原字符串比较,判断出结果 */ package g; import java.util.Scanner; public class Test3 { public static void main(String[] args) { Scanner reader=new Scanner(System.in); System.out.println("请输入一串字符:"); String str=reader.nextLine(); String str1 = str.replaceAll("[\p{Punct}\p{Space}]+", "");//正则表达式去除标点符号和空格 StringBuffer str2=new StringBuffer(str1);//创建stringbuffer对象 if(str1.equals(str2.reverse().toString())){//str1与str2转换完的串比较 System.out.println("字符串是回文"); }else{ System.out.println("字符串不是回文"); } } }