第11次作业--字符串处理
题目1:编写一个应用程序,统计输入的一个字符串中相同字符的个数,并将统计结果输出。
1 package 统计字符串中相同字符个数; 2 3 import java.util.Scanner; 4 5 6 public class Same { 7 8 9 public static void main(String[] args) { 10 System.out.println("请输入字符串:"); 11 Scanner reader=new Scanner(System.in); 12 String s=reader.nextLine(); //从键盘接收字符串,可接收空格 13 char a[]=s.toCharArray(); //将字符串转化为字符数组 14 15 for (int i=0;i<a.length;i++){ //for循环遍历数组,找相同元素 16 int count =0; 17 18 for(int j=0;j<a.length;j++){ 19 if(a[i]==a[j]){ 20 count++; 21 } 22 } 23 System.out.println("第"+(i+1)+"个字符:"+a[i]+"共有"+count+"个"); 24 25 } 26 27 } 28 29 }
运行结果
题目2:编写程序,输入一个字符串,判断该串中的字母能否组成一个回文串(回文串:一个字符串从前向后读取和从后向前读取都一样)。如:ab<c>c?ba
设计思想:StringBuffer对象有字符串逆置的方法,但是StringBuffer对象对字符串的操作也会改变原有字符串的内容,所以原有字符串用String类来创建,再新建一个StringBuffer类的对象来存原字符串的内容,将其逆置,判断两个是否相等,相等就是回文,不相等就构不成回文。
1 package 回文; 2 3 import java.util.Scanner; 4 5 public class huiwen { 6 7 8 public static void main(String[] args) { 9 10 Scanner reader=new Scanner(System.in); 11 System.out.println("请输入一个字符串:"); 12 String a=reader.nextLine(); //从键盘接收字符串用a接收 13 StringBuffer b=new StringBuffer(a); //创建StringBuffer类对象b,里面存String对象a的内容 14 if(a.equals(b.reverse().substring(0))){ //判断b的逆置是否和a相同 ,相同则a是回文,不同则a不是回文 15 System.out.println("是回文"); 16 }else{ 17 System.out.println("不是回文"); 18 } 19 20 } 21 22 }
运行结果