zoukankan      html  css  js  c++  java
  • Java第11次作业--字符串处理

    一、题目1

    编写一个应用程序,统计输入的一个字符串中相同字符的个数,并将统计结果输出。

    二、源代码

    /**使用HashMap类实现Map接口,用Map集合里的方法来进行操作*/
    package com;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Scanner;
    import java.util.Set;
    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.nextLine();
            //声明HashMap对象
            HashMap<Character, Integer> hashMap=new HashMap<Character, Integer>();
            for (int i = 0; i < str.length(); i++) {
                char c=str.charAt(i);
                //hashMap中没有此元素,则添加至map集合中
                if(!hashMap.containsKey(c)){ //判断Map集合中是否包含'c'
                    hashMap.put(c,1);
                }else {
                    int count=hashMap.get(c);
                    count++;//Map集合中存在此元素,则将值加1
                    hashMap.put(c, count);//添加数据
                }
            }
            Set<Map.Entry<Character, Integer>> entries=hashMap.entrySet();
            for(Map.Entry<Character, Integer> entry:entries){
                System.out.println(entry.getKey()+"("+entry.getValue()+")");
            }
        }
    }

    三、运行结果

     

    一、题目2

    编写程序,输入一个字符串,判断该串中的字母能否组成一个回文串(回文串:一个字符串从前向后读取和从后向前读取都一样)。如:ab<c>c?ba

    二、源代码

    /**输入一串字符,创建StringBuffer对象,用reverse()方法逆置与原字符串比较,用正则表达式去除非字母字符
     */
    package com;
    import java.util.Scanner;
    public class Test2 {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入一串字符:");
            String str=sc.nextLine();
            //正则表达式去除标点符号和空格
            String str1 = str.replaceAll("[\p{Punct}\p{Space}]+","");
            StringBuffer str2=new StringBuffer(str1);
            if(str1.equals(str2.reverse().toString())){
                System.out.println(str1+"是回文");
            }else {
                System.out.println(str1+"不是回文");
            }
        }
    }

    三、运行结果

     

     

  • 相关阅读:
    LeetCode 404. 左叶子之和
    三年了
    LeetCode 543. 二叉树的直径
    求结点在二叉排序树中层次的算法
    LeetCode 98. 验证二叉搜索树
    LeetCode 236. 二叉树的最近公共祖先
    LeetCode 129. 求根到叶子节点数字之和
    LeetCode 113. 路径总和 II
    LeetCode 107. 二叉树的层次遍历 II
    LeetCode 144. 二叉树的前序遍历 (非递归)
  • 原文地址:https://www.cnblogs.com/jingxueyan/p/11891957.html
Copyright © 2011-2022 走看看