第11次作业--字符串处理

一、题目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("字符串不是回文");
        }
    }

}

三、运行结果

原文地址:https://www.cnblogs.com/weiyiren666/p/11889331.html