栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中的String的一些常用方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中的String的一些常用方法

家人们好!

目录
  • 字符, 字节与字符串
    • 字符与字符串
      • 获取指定位置的字符
      • 字符串与字符数组的转换
      • 给定字符串一个字符串, 判断其是否全部由数字所组成
    • 字节与字符串
      • 实现字符串与字节数组的转换处理
  • 字符串常见操作
    • 字符串比较
      • 不区分大小写比较
      • 观察compareTo()比较
    • 字符串查找
      • 字符串查找,最好用最方便的就是contains()
      • 使用indexOf()方法进行位置查找
    • 字符串替换
      • 字符串的替换处理
    • 字符串拆分
      • 实现字符串的拆分处理
      • 字符串的部分拆分
      • 拆分IP地址
      • 多次拆分
    • 字符串截取
      • 观察字符串截取
    • 其他操作方法
      • 观察trim()方法的使用
      • 大小写转换
      • 字符串length()
      • 观察isEmpty()方法
      • 首字母大写
      • 观察StringBuffer使用

字符, 字节与字符串 字符与字符串 获取指定位置的字符
public static void main(String[] args) {
        String str = "hello" ;
        System.out.println(str.charAt(0)); // 下标从 0 开始
    }

如果超过了应有的长度:

 public static void main(String[] args) {
        String str = "hello" ;
        System.out.println(str.charAt(10)); // 下标从 0 开始
    }

字符串与字符数组的转换
public static void main(String[] args) {
        String str = "helloworld" ;
// 将字符串变为字符数组
        char[] data = str.toCharArray() ;
        for (int i = 0; i < data.length; i++) {
            System.out.print(data[i]+" ");
        }

public static void main(String[] args) {
        String str = "helloworld" ;
        char[] data = str.toCharArray() ;
        // 字符数组转为字符串
       System.out.println(new String(data)); // 全部转换
        System.out.println(new String(data,5,5)); // 部分转换
    }

给定字符串一个字符串, 判断其是否全部由数字所组成

思路: 将字符串变为字符数组而后判断每一位字符是否是" 0 “~”‘9’"之间的内容,如果是则为数字

public static void main(String[] args) {
            String str = "1a23456" ;
            System.out.println(isNumber(str)? "字符串由数字所组成!" : "字符串中有非数字成员!");
        }
        public static boolean isNumber(String str) {
            char[] data = str.toCharArray() ;
            for (int i = 0; i < data.length; i++) {
                if (data[i]<'0' || data[i]>'9') {
                    return false ;
                }
            }
            return true ;
    }

字节与字符串 实现字符串与字节数组的转换处理
 public static void main(String[] args) {
        String str = "helloworld" ;
// String 转 byte[]
        byte[] data = str.getBytes() ;
        for (int i = 0; i < data.length; i++) {
            System.out.print(data[i]+" ");
        }
// byte[] 转 String
        System.out.println(new String(data));
    }

字符串常见操作 字符串比较 不区分大小写比较
public static void main(String[] args) {
        String str1 = "hello" ;
        String str2 = "Hello" ;
        System.out.println(str1.equals(str2)); // false
        System.out.println(str1.equalsIgnoreCase(str2)); // true
    }

观察compareTo()比较

在String类中compareTo()方法是一个非常重要的方法,该方法返回一个整型,该数据会根据大小关系返回三类内
容:
1. 相等:返回0.
2. 小于:返回内容小于0.
3. 大于:返回内容大于0.

public static void main(String[] args) {
        System.out.println("A".compareTo("a")); // -32
        System.out.println("a".compareTo("A")); // 32
        System.out.println("A".compareTo("A")); // 0
        System.out.println("AB".compareTo("AC")); // -1
        System.out.println("刘".compareTo("杨"));
    }

compareTo()是一个可以区分大小关系的方法,是String方法里是一个非常重要的方法。
字符串的比较大小规则, 总结成三个字 “字典序” 相当于判定两个字符串在一本词典的前面还是后面. 先比较第一
个字符的大小(根据 unicode 的值来判定), 如果不分胜负, 就依次比较后面的内容

字符串查找 字符串查找,最好用最方便的就是contains()
public static void main(String[] args) {
        String str = "helloworld" ;
        System.out.println(str.contains("world")); // true
    }

使用indexOf()方法进行位置查找
 public static void main(String[] args) {
        String str = "helloworld" ;
        System.out.println(str.indexOf("world")); // 5,w开始的索引
        System.out.println(str.indexOf("bit")); // -1,没有查到
        if (str.indexOf("hello") != -1) {
            System.out.println("可以查到指定字符串!");
        }
    }


现在基本都是用contains()方法完成。
使用indexOf()需要注意的是,如果内容重复,它只能返回查找的第一个位置
使用indexOf()的注意点

String str = "helloworld" ; 
System.out.println(str.indexOf("l")); // 2 
System.out.println(str.indexOf("l",5)); // 8 
System.out.println(str.lastIndexOf("l")); // 8

在进行查找的时候往往会判断开头或结尾。
判断开头或结尾

 public static void main(String[] args) {
        String str = "**@@helloworld!!" ;
        System.out.println(str.startsWith("**")); // true
        System.out.println(str.startsWith("@@",2)); // ture
        System.out.println(str.endsWith("!!")); // true
    }

字符串替换 字符串的替换处理
public static void main(String[] args) {
        String str = "helloworld" ;
        System.out.println(str.replaceAll("l", "_"));
        System.out.println(str.replaceFirst("l", "_"));
    }

注意事项: 由于字符串是不可变对象, 替换不修改当前字符串, 而是产生一个新的字符串.

字符串拆分 实现字符串的拆分处理
public static void main(String[] args) {
        String str = "hello world hello bit" ;
        String[] result = str.split(" ") ; // 按照空格拆分
        for(String s: result) {
            System.out.println(s);
        }
    }

字符串的部分拆分
public static void main(String[] args) {
        String str = "hello world hello bit" ;
        String[] result = str.split(" ",2) ;
        for(String s: result) {
            System.out.println(s);
        }
    }

拆分IP地址

拆分是特别常用的操作. 一定要重点掌握. 另外有些特殊字符作为分割符可能无法正确切分, 需要加上转义.

  public static void main(String[] args) {
        String str = "192.168.1.1";
        String[] strings = str.split("\.",7);
        for (String s:strings) {
            System.out.println(s);
        }
        System.out.println("=================");
        String str2 = "192\168\1\1";
        strings = str2.split("\\",7);
        for (String s:strings) {
            System.out.println(s);
        }

    }

注意事项:

  1. 字符"|","*","+“都得加上转义字符,前面加上”".
  2. 而如果是"",那么就得写成"".
  3. 如果一个字符串中有多个分隔符,可以用"|"作为连字符.
多次拆分
public static void main(String[] args) {
        String str = "name=zhangsan&age=18" ;
        String[] result = str.split("&") ;
        for (int i = 0; i < result.length; i++) {
            String[] temp = result[i].split("=") ;
            System.out.println(temp[0]+" = "+temp[1]);
        }

这种代码在以后的开发之中会经常出现

字符串截取 观察字符串截取
public static void main(String[] args) {
        String str = "helloworld" ;
        System.out.println(str.substring(5));
        System.out.println(str.substring(0, 5));
    }


注意事项:

  1. 索引从0开始
  2. 注意前闭后开区间的写法, substring(0, 5) 表示包含 0 号下标的字符, 不包含 5 号下标
其他操作方法 观察trim()方法的使用
 public static void main(String[] args) {
        String str = "    abc     defg     ";
        String ret = str.trim();
        System.out.print(ret);
        System.out.println("==============");

    }


trim 会去掉字符串开头和结尾的空白字符(空格, 换行, 制表符等).

大小写转换
public static void main(String[] args) {
        String str = " hello%$$%@#$%WORLD 哈哈哈 " ;
        System.out.println(str.toUpperCase());
        System.out.println(str.toLowerCase());
    }

这两个函数只转换字母

字符串length()
public static void main(String[] args) {
        String str = " hello%$$%@#$%world 哈哈哈 " ;
        System.out.println(str.length());
    }

注意:数组长度使用数组名称.length属性,而String中使用的是length()方法

观察isEmpty()方法
System.out.println("hello".isEmpty()); 
System.out.println("".isEmpty()); 
System.out.println(new String().isEmpty());

首字母大写

String类并没有提供首字母大写操作,需要自己实现

public static void main(String[] args) { 
 System.out.println(fistUpper("yuisama")); 
 System.out.println(fistUpper("")); 
 System.out.println(fistUpper("a")); 
 } 
 public static String fistUpper(String str) { 
 if ("".equals(str)||str==null) { 
 return str ; 
 } 
 if (str.length()>1) { 
 return str.substring(0, 1).toUpperCase()+str.substring(1) ; 
 } 
 return str.toUpperCase() ; 
 }

观察StringBuffer使用
 public static void main(String[] args) { 
 StringBuffer sb = new StringBuffer(); 
 sb.append("Hello").append("World"); 
 fun(sb); 
 System.out.println(sb); 
 } 
 public static void fun(StringBuffer temp) { 
 temp.append("n").append("how are you?"); 
 } 

String和StringBuffer最大的区别在于:String的内容无法修改,而StringBuffer的内容可以修改。频繁修改字符串的
情况考虑使用StingBuffer。

注意:String和StringBuffer类不能直接转换。如果要想互相转换,可以采用如下原则:
String变为StringBuffer:利用StringBuffer的构造方法或append()方法
StringBuffer变为String:调用toString()方法。
除了append()方法外,StringBuffer也有一些String类没有的方法
字符串反转:

StringBuffer sb = new StringBuffer("helloworld"); 
System.out.println(sb.reverse());

删除指定范围的数据:

StringBuffer sb = new StringBuffer("helloworld"); 
System.out.println(sb.delete(5, 10));

插入数据

StringBuffer sb = new StringBuffer("helloworld"); 
System.out.println(sb.delete(5, 10).insert(0, "你好"));

拓展:
请解释String、StringBuffer、StringBuilder的区别:
String的内容不可修改,StringBuffer与StringBuilder的内容可以修改.
StringBuffer与StringBuilder大部分功能是相似的.
StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操作.

看完记得点赞哟!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/600804.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号