java面向对象(七)字符串类对于字符串的处理

java字符串处理函数

一、字符串类构造函数

1.通过一个字符串来构造字符串对象
  1. String c = new String("book");
2.通过一个byte数组或char数组来构造一个字符串
  1. byte[] bs = new byte[]{1, 2, 3};
  2. String d = new String(bs);
  3. System.out.println(d); //
  4. char[] cs = new char[]{'a', 'B', 'c'};
  5. String e = new String(cs);
  6. System.out.println(e); //aBc
3.通过一个StringBuffer构造一个字符串
  1. StringBuffer sb = new StringBuffer("hello");
  2. String f = new String(sb);
  3. System.out.println(sb); //hello

二、字符串类属性相关方法

  • length():获取字符串长度
  • isEmpty():判断字符串是否为空(通过字符串长度来判断的)
  1. String s = "world";
  2. System.out.println(s.length()); //5
  3. String blank = " ";
  4. System.out.println(blank.isEmpty()); //false

三、字符串转换

1.类型转换
  • 通过String.valueOf可以将基本类型转换为字符串类型
  • 通过getBytes可以将字符串类型转换成byte数组
  • 通过toCharArray可以将字符串转换成char数组
  1. int a = 10;
  2. float b = 0.2f;
  3. boolean c = false;
  4. System.out.println(String.valueOf(a)); //10
  5. System.out.println(String.valueOf(b)); //0.2
  6. System.out.println(String.valueOf(c)); //false
  7. byte[] bytes = "Hello".getBytes();
  8. char[] chars = "world".toCharArray();
2.大小写转换
  • toLowerCase:将字符串全部转成小写
  • toUpperCase:将字符串全部转成大写
  1. String lowerStr = "World!";
  2. String upperStr = "HELLO";
  3. System.out.println(lowerStr.toUpperCase()); //WORLD!
  4. System.out.println(upperStr.toLowerCase()); //hello

四、字符串比较、匹配与查找

1.比较
  • equals : 比较两个字符串是否相等
  • equalsIgnoreCase : 比较两个字符串是否相等(不区分大小写)
  • compareTo : 按顺序逐个比较两个字符串的每个字符(相同为0)
  1. String str1 = "hello";
  2. String str2 = "Hello";
  3. System.out.println(str1.equals(str2)); //false
  4. System.out.println(str1.equalsIgnoreCase(str2)); //true
  5. System.out.println(str1.compareTo(str2)); //32

  • 使用equals比较两个字符串时,一般将常量(而且非null)的值放在前面
2.匹配
  • startsWith : 判断是否以一个子串开始
  • endsWith : 判断是否以一个子串结束
  • matches : 判断是否匹配某个模式
  1. String str = "hello world!hello java!hello computer!";
  2. System.out.println(str.startsWith("he")); //true
  3. System.out.println(str.endsWith("!")); //true
  4. System.out.println(str.matches("^h.*!$")); //true
3.子串
  • substring:获取截取指定位置的子串
  • contains:是否包含某个子串
  1. String str = "hello world!hello java!hello computer!";
  2. System.out.println(str.substring(1, 5)); //ello
  3. System.out.println(str.contains("java"));//true

五、字符串分割与替换

1.分割:split
  1. //1.使用子字符串作为分割点来分割
  2. String[] strArr = blankStr.split(" ");
  3. for (int i = 0; i< strArr.length; i++) {
  4. System.out.print(strArr[i]+","); //,Computer!,,中间有空格,最后的,Computer!
  5. }
  6. //2.使用正则表达作为分割点式来分割
  7. String[] words = blankStr.split("\\s+");
  8. for (int i = 0; i< words.length; i++) {
  9. System.out.print(words[i]+","); //,Computer!,中间有空格,最后的,
  10. }
2.替换
  • 只替换第一个(部分替换):replaceFirst
  • 全部替换:replace/replaceAll
  1. System.out.println(str.replace("hello", "hi")); //hi world!hi java!hi computer!
  2. System.out.println(str.replaceFirst("hello", "hi")); //hi world!hello java!hello computer!
  3. System.out.println(str.replaceAll("hello", "hi")); //hi world!hi java!hi computer!

六、字符串其他函数

1.trim
  • 功能:去掉字符串两边的空格(去首尾的空格,不去字符串内部的空格)
  1. String blankStr = " Computer! 中间有空格 最后的 ";
  2. String noBlankStr = blankStr.trim();
  3. System.out.println(noBlankStr); //Computer! 中间有空格 最后的
2.format
  • 功能:格式化字符串(将字符串中的占位符替换成指定的值)

注:常用的转换符

转换符 说明 示例
%s 字符串类型 “hello”
%c 字符类型 ‘m’
%b 布尔类型 true
%d 整数类型(十进制) 100
%x 整数类型(十六进制) FF
%o 整数类型(八进制) 77
%f 浮点类型 99.99
%a 十六进制浮点类型 FF.35AE
%e 指数类型 9.38e+5
%g 通用浮点类型(f和e类型中较短的)
%h 散列码
%% 百分比类型
%n 换行符
%tx 日期与时间类型(x代表不同的日期与时间转换符
  1. System.out.println(String.format("id=%d,name=%s", 12, "shixinke")); //id=12,name=shixinke