[算法总结] 关于字符串类型题你应该知道这些?精心汇总!!

一个不甘平凡的普通人,致力于为Golang社区和算法学习做出贡献,期待您的关注和认可,陪您一起学习打卡!!!
专栏:算法学习
专栏:Go实战
个人主页:个人主页

[算法总结] 关于字符串类型题你应该知道这些?精心汇总!!_第1张图片

文章目录

  • 问题描述
  • 字符串操作中常用方法
      • Character类
      • HashMap || HashSet
      • 验证数字是否超过int类型范围

问题描述

最近在练习字符串类型的算法题时候,编程语言内部自带了很多api还有一些实用的方法,在此总结一下用法,方便后面回顾使用。

字符串操作中常用方法

Character类

1.返回的是一个boolean类型的,可以用于去除字符串中非数字和字母的字符
Character.isLetterOrDigit()
2.判断是否是字符
Character.isDigit()
3.判断是否是小写字符
Character.isLowerCase()
4.转换成小写或者大写
Character.toLowerCase()
Character toUpperCase()

HashMap || HashSet

一般题中要求去重的时候,可以使用HashSet,set表中不支持有重复元素

   HashSet set = new HashSet<>();
   set.add(1);//添加元素
   System.out.println(set.size()); //长度
   set.remove(1); //删除元素
   System.out.println(set.isEmpty()); // 判断是否是空
    set.clear(); //清除所有元素
    //判断是否包含某个元素 ,布尔类型
    System.out.println(set.contains(1));

一般题中要统计字符出现的次数,可以使用HashMap来统计,支持重复

	HashMap map  = new HashMap<>();
    map.put('1',1); //压入元素
    map.get('1');// 提取键值
    //获取键值,默认为0
    map.getOrDefault('1',0);
    System.out.println(map.isEmpty()); //判断是否为空
    System.out.println(map.containsKey('1')); //判断是否含有键
    map.remove('1'); //删除
    map.values(); //显示所有的值
    map.size();
    //获得每一个键和值
    for(Map.Entry entry: map.entrySet()){
        int key = entry.getKey(),value = entry.getValue();
    }

验证数字是否超过int类型范围

这类题经常遇到,所以总结一下。以这个例子

 public static void main(String[] args) {
        String a = "12312";
        int result = 0;
        for(int i =0;i<a.length();i++){
            //拿到数字
            int temp = result*10+(a.charAt(i)-'0');
            if(temp/10 != result){
                System.out.println(1);
            }
            result = temp;
        }
    }

你可能感兴趣的:(算法提炼,算法,java,数据结构)