• 字符串的比较、获取、截取、转换、分割方法---Java


    String当中与比较相关的常用方法有:

    ==是进行对象的地址值比较,如果确实需要字符串的内容比较,可以使用两个方法:

    public boolean equals(Object obj)参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true;否则返回false。
    注意事项:
    1. 任何对象都能用Object进行接收。
    2. equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样。
    3. 如果比较双方一个常量一个变量,推荐把常量字符串写在前面
    推荐:"abc".equals(str) 不推荐:str.equals("abc")

    public boolean equalsIgnoreCase(String str):忽略大小写,进行内容比较。

     1 public class Demo01StringEquals {
     2 
     3     public static void main(String[] args) {
     4         String str1 = "Hello";
     5         String str2 = "Hello";
     6         char[] charArray = {'H', 'e', 'l', 'l', 'o'};
     7         String str3 = new String(charArray);
     8 
     9         System.out.println(str1.equals(str2)); // true
    10         System.out.println(str2.equals(str3)); // true
    11         System.out.println(str3.equals("Hello")); // true
    12         System.out.println("Hello".equals(str1)); // true
    13 
    14         String str4 = "hello";
    15         System.out.println(str1.equals(str4)); // false
    16         System.out.println("=================");
    17 
    18         String str5 = null;
    19         System.out.println("abc".equals(str5)); // 推荐:false
    20 //        System.out.println(str5.equals("abc")); // 不推荐:报错,空指针异常NullPointerException
    21         System.out.println("=================");
    22 
    23         String strA = "Java";
    24         String strB = "java";
    25         System.out.println(strA.equals(strB)); // false,严格区分大小写
    26         System.out.println(strA.equalsIgnoreCase(strB)); // true,忽略大小写
    27 
    28         // 注意,只有英文字母区分大小写,其他都不区分大小写
    29         System.out.println("abc一123".equalsIgnoreCase("abc壹123")); // false
    30     }
    31 
    32 }
    比较

    String当中与获取相关的常用方法有:

    public int length():获取字符串当中含有的字符个数,拿到字符串长度。
    public String concat(String str):将当前字符串和参数字符串拼接成为返回值新的字符串。
    public char charAt(int index):获取指定索引位置的单个字符。(索引从0开始。)
    public int indexOf(String str)查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值

     1 public class Demo02StringGet {
     2 
     3     public static void main(String[] args) {
     4         // 获取字符串的长度
     5         int length = "asdasfeutrvauevbueyvb".length();
     6         System.out.println("字符串的长度是:" + length);
     7 
     8         // 拼接字符串
     9         String str1 = "Hello";
    10         String str2 = "World";
    11         String str3 = str1.concat(str2);
    12         System.out.println(str1); // Hello,原封不动
    13         System.out.println(str2); // World,原封不动
    14         System.out.println(str3); // HelloWorld,新的字符串
    15         System.out.println("==============");
    16 
    17         // 获取指定索引位置的单个字符
    18         char ch = "Hello".charAt(1);
    19         System.out.println("在1号索引位置的字符是:" + ch);
    20         System.out.println("==============");
    21 
    22         // 查找参数字符串在本来字符串当中出现的第一次索引位置
    23         // 如果根本没有,返回-1值
    24         String original = "HelloWorldHelloWorld";
    25         int index = original.indexOf("llo");
    26         System.out.println("第一次索引值是:" + index); // 2
    27 
    28         System.out.println("HelloWorld".indexOf("abc")); // -1
    29     }
    30 
    31 }
    获取


    字符串的截取方法:

    public String substring(int index)截取从参数位置一直到字符串末尾,返回新字符串。
    public String substring(int begin, int end)截取从begin开始,一直到end结束,中间的字符串。
    备注:[begin,end),包含左边,不包含右边。

     1 public class Demo03Substring {
     2 
     3     public static void main(String[] args) {
     4         String str1 = "HelloWorld";
     5         String str2 = str1.substring(5);
     6         System.out.println(str1); // HelloWorld,原封不动
     7         System.out.println(str2); // World,新字符串
     8         System.out.println("================");
     9 
    10         String str3 = str1.substring(4, 7);
    11         System.out.println(str3); // oWo
    12         System.out.println("================");
    13 
    14         // 下面这种写法,字符串的内容仍然是没有改变的
    15         // 下面有两个字符串:"Hello","Java"
    16         // strA当中保存的是地址值。
    17         // 本来地址值是Hello的0x666,
    18         // 后来地址值变成了Java的0x999
    19         String strA = "Hello";
    20         System.out.println(strA); // Hello
    21         strA = "Java";
    22         System.out.println(strA); // Java
    23     }
    24 
    25 }
    截取


    String当中与转换相关的常用方法有:

    public char[] toCharArray()将当前字符串拆分成为字符数组作为返回值。
    public byte[] getBytes():获得当前字符串底层的字节数组。
    public String replace(CharSequence oldString, CharSequence newString)
    将所有出现的老字符串替换成为新的字符串,返回替换之后的结果新字符串。
    备注:CharSequence意思就是说可以接受字符串类型。

     1 public class Demo04StringConvert {
     2 
     3 public static void main(String[] args) {
     4 // 转换成为字符数组
     5 char[] chars = "Hello".toCharArray();
     6 System.out.println(chars[0]); // H
     7 System.out.println(chars.length); // 5
     8 System.out.println("==============");
     9 
    10 // 转换成为字节数组
    11 byte[] bytes = "abc".getBytes();
    12 for (int i = 0; i < bytes.length; i++) {
    13 System.out.println(bytes[i]);
    14 }
    15 System.out.println("==============");
    16 
    17 // 字符串的内容替换
    18 String str1 = "How do you do?";
    19 String str2 = str1.replace("o", "*");
    20 System.out.println(str1); // How do you do?
    21 System.out.println(str2); // H*w d* y*u d*?
    22 System.out.println("==============");
    23 
    24 String lang1 = "会不会玩儿呀!你大爷的!你大爷的!你大爷的!!!";
    25 String lang2 = lang1.replace("你大爷的", "****");
    26 System.out.println(lang2); // 会不会玩儿呀!****!****!****!!!
    27 }
    28 
    29 }
    转换

    分割字符串的方法:
    public String[] split(String regex):按照参数的规则,将字符串切分成为若干部分。

    注意事项:
    split方法的参数其实是一个“正则表达式”,今后学习。
    今天要注意:如果按照英文句点“.”进行切分,必须写"\."(两个反斜杠)

     1 public class Demo05StringSplit {
     2 
     3     public static void main(String[] args) {
     4         String str1 = "aaa,bbb,ccc";
     5         String[] array1 = str1.split(",");
     6         for (int i = 0; i < array1.length; i++) {
     7             System.out.println(array1[i]);
     8         }
     9         System.out.println("===============");
    10 
    11         String str2 = "aaa bbb ccc";
    12         String[] array2 = str2.split(" ");
    13         for (int i = 0; i < array2.length; i++) {
    14             System.out.println(array2[i]);
    15         }
    16         System.out.println("===============");
    17 
    18         String str3 = "XXX.YYY.ZZZ";
    19         String[] array3 = str3.split("\.");
    20         System.out.println(array3.length); // 0
    21         for (int i = 0; i < array3.length; i++) {
    22             System.out.println(array3[i]);
    23         }
    24     }
    25 
    26 }
    分割
  • 相关阅读:
    c++ 异常处理 assert | try
    c++ 容器类
    protobuf 向前兼容向后兼容
    命名空间和模块化编程,头文件
    对象3:继承
    动态内存 this指针
    对象2 构造,析构
    对象 1 作用域解析符 ::
    hibernate-criteria查询
    oracle报错:ORA-28000: the account is locked
  • 原文地址:https://www.cnblogs.com/zeon/p/13357470.html
Copyright © 2020-2023  润新知