第11次作业--字符串处理
一、题目1
编写一个应用程序,统计输入的一个字符串中相同字符的个数,并将统计结果输出。
二、代码
Test.java
package Seventeenth; /* * 通过remove移除相同的字符放到数组中,然后再进行比较 * */ import java.util.Scanner; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); System.out.println("请输入一个字符串"); String str = sc.next(); char[] a = new char[str.length()]; char[] b = new char[str.length()]; int[] c = new int[str.length()]; char[] d = new char[str.length()]; String g = ""; a = str.toCharArray(); b = str.toCharArray(); /* * for (int i = 0; i < str.length(); i++) { int number = 0; for (int j * =0; j < str.length(); j++) { if (a[i] == b[j]) { number++; } } * c[i]=number; System.out.println(c[i]); } */ g = Test.remove(str); for (int i = 0; i < g.length(); i++) { d = g.toCharArray(); } for (int i = 0; i < g.length(); i++) { int number = 0; for (int j = 0; j < g.length(); j++) { if (d[i] == a[j]) { number++; } } c[i] = number; System.out.println("字符串中" + d[i] + "为" + (c[i] + 1)); } } public static String remove(String str) { // 去除数组里面重复的字符 StringBuffer sb = new StringBuffer(); for (int i = 0; i < str.length(); i++) { char every = str.charAt(i); int first = str.indexOf(every); int last = str.lastIndexOf(every); if (last == first || first == i) { sb.append(every); } } return sb.toString(); } }
三、运行结果
一、题目2
编写程序,输入一个字符串,判断该串中的字母能否组成一个回文串(回文串:一个字符串从前向后读取和从后向前读取都一样)。如:abcba
二、代码
Test.java
package Eighteenth; /* * 用stringbuffer的reverse方法进行字符串的逆置 * */ import java.util.Scanner; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入相应的字符串"); Scanner sc=new Scanner(System.in); String s = sc.next(); StringBuffer res = new StringBuffer(s); res.reverse(); String rev = new String(res); if (rev.equals(s)) { System.out.println("你输入的字符串是回文"); } else { System.out.println("你输入的字符串不是回文"); } } }