java中String的用法详解

在这里先分别对String、StringBuffer、StringBuilder进行解析,在比较三者异同

String

String类:代表字符串。Java程序中所有的字符串字面值(如"fda")都能作为此类的实现类实现

从下面源码可以看出一下几点:

  • String声明为final的,不可被继承

  • String实现了Serializable接口:表示字符串是支持序列化的实现了Comparable接口:表示String可以比较大小

  • String在内部定义了final的char型数组(final char[]),用于存储字符串数据。

    可以得出:String代表一个不可变的字符序列。具有不变性。S
public final class String
    implements java.io.Serializable,Comparable<String>,CharSequence {
        private final char value[];

String的初始化方式:常用的两种:

//通过字面量的方式定义
String s1 = "java";
//通过new + 构造器方式
String s2 = new String("java2");

String的常用用法详解

  1. int length():返回字符串的长度
    String s1 ="HelloWorld";
    System.out.println(s1.length());//10
  2. char chaeAt():返回索引处(index)的字符
    String s1 ="HelloWorld";
    System.out.println(s1.charAt(5));//W

  3. boolean isEmpty():判断是否是空字符串
    String s1 ="HelloWorld";
    System.out.println(s1.isEmpty());//false

  4. String toLowerCase():使用默认语言环境,将String中的所有字符转换为小写
    String s1 ="HelloWorld";
    String s2 = s1.toLowerCase();
    System.out.println(s2);//helloworld

  5. String toUpperCase():使用默认语言环境,将String中的所有字符转换为大写
  6. String trim():返回字符串的副本,忽略字符串前和字符串后的空白
    String s3 = "     he   ll   o   w  or l d      ";
    String s4 = s3.trim();
    System.out.println("----------" + s4 + "-----------");
    //"he   ll   o   w  or l d"

  7. boolean equals():比较两个字符串的内容是否相同
     String s6 = "abc";
     String s7 = "cde";
     System.out.println(s6.equals(s7));//false

  8. String concat():将指定字符串连接到此字符串的结尾。
    String s1 = "abc";
    System.out.println(s1.concat("def"))//abcdef

  9. int compareTo():比较两个字符串的大小
    String s6 = "abc";
    String s7 = "cde";
    int i = s6.compareTo(s7);
    System.out.println(i);//-2
  10. String substring((int beginIndex):返回一个新的字符串,它是此字符串的从 beginIndex开始截取到最后的一个子字符串
     String s8 = "你是如此美丽";
     String s9 = s8.substring(2);
     System.out.println(s9);//如此美丽

  11. boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列 时,返回 true
    String str1 = "helloworld";
    String str2 = "wo";
    boolean b4 = str1.contains(str2);//true

  12. int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引
    String str1 = "helloworld";
    System.out.println(str1.indexOf("lo"));//3
    //若不存在,返回-1

  13. int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引
    String str1 = "helloworld";
    System.out.println(str1.lastIndexOf("o"));//6

  14. String replace(char oldChar, char newChar):返回一个新的字符串,它是 通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
  15. boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。
  16. String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。

 String与基本数据类型之间的转换

String转换成基本数据类型、包装类:调用包装类的静态方法:parseXXX(str)

基本数据类型、包装类转换成String:调用String重载的ValueOf(XXX)

String str = "123";
int num = Integer.parseInt(str);//123
double num1 = Double.parseDouble(str);//123.0
String str2 = String.valueOf(num);//"123"

 String与char[]之间的转换

String转换成char[]:调用String的toCharArray()

char[]转换成String:调用String的构造器

String str = "abc123";
char[] charArray = str.toCharArray();
for (int i = 0; i < charArray.length; i++) {
       System.out.println(charArray[i]);
  }   // a  b  c  1  2  3
        
char[] arr = new char[]{'h','e','l','l','o'};
String str2 = new String(arr);
System.out.println(str2);//"hello"

 String与byte[]之间的转换

String转换成byte[]:调用String的getBytes()

byte[]转换成String:调用String的构造器

String str1 = "abc123";
byte[] bytes = str1.getBytes();
System.out.println(Arrays.toString(bytes));//[97, 98, 99, 49, 50, 51]
String str2 = new String(bytes);
 System.out.println(str2);//abc123

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值