java.lang.String 学习

  package com.yin2na.example; import static java.lang.System.out; class StringExample { public static void main(String[] args) throws Exception { String s = "hello world!";//使用字符串字面量创建一个String对象。从JDK 1.5 开始,使用字符串字面量创建String对象时,会把该String对象存放到String缓冲池(忘记了是不是这个概念了)中,当下一次再次创建相同字面量的String对象时,会直接把相同字面量的String对象的引用返回给该变量。但使用new String()创建一个String变量时,总是在堆中开一个新的内存空间创建一个新String对象再把引用返回。如下所示: String s1 = "hello"; String s2 = "hello" + " world!"; String s4 = s1 + " world!"; String s3 = new String("hello world!"); out.println(s==s2);//true out.println(s==s4);//false out.println(s==s3);//false out.println(s.equals(s3));//true String类继承Object类,默认情况下equals方法与==的作用相同都是判断两个对象的引用是否相同,但是String类重写了该方法,如果两个变量的字面量相同就返回true。 //---------------------------华丽的分割线-------------------------- //构造函数 s = "hello 中国!"; byte[] bytes = s.getBytes(); java.nio.charset.Charset charset = java.nio.charset.Charset.defaultCharset();//返回此 Java 虚拟机的默认 charset。 out.println(charset.toString()); s = new String();//初始化一个新创建的 String 对象,使其表示一个空字符序列。 out.println(s); s = new String(bytes);//通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。 out.println(s); s = new String(bytes, charset);//通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。 out.println(s); s = new String(bytes, 3, 5);//通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。 out.println(s); s = new String(bytes, 3, 6); out.println(s); s = new String(bytes, 3, 5, charset);//通过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String。 out.println(s); s = new String(bytes, 3, 5, "GBK");//通过使用指定的字符集解码指定的 byte 子数组,构造一个新的 String。 out.println(s); s = new String(bytes, "GBK");//通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。 out.println(s); char[] value = "hello 中国!".toCharArray(); s = new String(value);//分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。 out.println(s); s = new String(value, 2, 5);//分配一个新的 String,它包含取自字符数组参数一个子数组的字符。 out.println(s); s = "hello 中国!"; int[] codePoints = new int[s.length()]; for(int i = 0; i 正则表达式。 out.println(s.offsetByCodePoints(3, 2));//返回此 String 中从给定的 index 处偏移 codePointOffset 个代码点的索引。 out.println(s.regionMatches(true, 2, "hello ", 0, 5));//测试两个字符串区域是否相等。 out.println(s.regionMatches(2, "hello ", 0, 5));//测试两个字符串区域是否相等。 out.println(s.replace('中', '美'));//返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 out.println(s.replace("中国", "那美克新人"));//使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。 out.println(s.replaceAll("regex", "replacement"));//暂时不会写正则表达式 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。 out.println(s.replaceFirst("regex", "replacement"));//暂时不会写正则表达式 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。 String[] strArr = s.split("regex");//暂时不会写正则表达式 根据给定正则表达式的匹配拆分此字符串。 for(int i = 0; i 正则表达式 根据匹配给定的正则表达式来拆分此字符串。 for(int i = 0; i < strArr.length; i++) { out.println(strArr[i]); } out.println(s.startsWith("he"));//测试此字符串是否以指定的前缀开始。 out.println(s.startsWith("he", 2));//测试此字符串从指定索引开始的子字符串是否以指定前缀开始。 out.println(s.subSequence(3, 4));//返回一个新的字符序列,它是此序列的一个子序列。 out.println(s.substring(3));//返回一个新的字符串,它是此字符串的一个子字符串。 out.println(s.substring(3, 4));//返回一个新的字符串,它是此字符串的一个子字符串。 value = s.toCharArray();//将此字符串转换为一个新的字符数组。 for(int i = 0; i < value.length; i++) { out.println(value[i]); } out.println(s.toLowerCase());//使用默认语言环境的规则将此 String 中的所有字符都转换为小写。 out.println(s.toLowerCase(locale));//使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。 out.println(s.toString());//返回此对象本身(它已经是一个字符串!)。 out.println(s.toUpperCase());//使用默认语言环境的规则将此 String 中的所有字符都转换为大写。 out.println(s.trim());//返回字符串的副本,忽略前导空白和尾部空白。 out.println(String.valueOf(true));//返回 boolean 参数的字符串表示形式。 out.println(String.valueOf('中'));//返回 char 参数的字符串表示形式。 out.println(String.valueOf(value));//返回 char 数组参数的字符串表示形式。 out.println(String.valueOf(value, 2, 3));//返回 char 数组参数的特定子数组的字符串表示形式。 out.println(String.valueOf(123.23));//返回 double 参数的字符串表示形式。 out.println(String.valueOf(123.23f));//返回 float 参数的字符串表示形式。 out.println(String.valueOf(123));//返回 int 参数的字符串表示形式。 out.println(String.valueOf(12323));//返回 long 参数的字符串表示形式。 out.println(String.valueOf(new Object()));//返回 Object 参数的字符串表示形式。 } }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值