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

String

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

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

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

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

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

    可以得出:String代表一个不可变的字符序列。具有不变性。S

public final class Stringimplements 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  3char[] 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

java中String的用法详解相关推荐

  1. Java中String类intern()详解

    1.背景 在开发过程中很多朋友,由于不会正确使用intern(),导致开发的程序,执行效率比较差.同时最近发现一道非常有意思的关于intern()的面试题,这道面试题还是有不小的难度,相信很多朋友看到 ...

  2. java中synchronized的用法详解

    记下来,很重要. Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并发线程访问同一个对象object中的这个synchron ...

  3. JAVA中SimpleDateFormat的用法详解

    每时每刻的时间不同(精确到毫秒),这就为我们给一条数据添加一个唯一的标识符带来很大的方便.我们在页面展示时,可能会想要不同的格式输出 ,比较常用的就是通过JAVA中SimpleDateFormat设置 ...

  4. c++中string常用用法详解(+例子部分代码)

    小白笔记 文章目录 前言 一.string 字符串赋值 二.string 字符串的拼接 三.string 查找和替换 四.string 字符串比较(挨个字符的ASCLL码来进行对比) 五.string ...

  5. C#中string.format用法详解 格式字符串

    string.Format对C#字符串格式化 String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 ...

  6. JAVA中“:”的用法详解

    1."str : abc"这样的结构是表示遍历abc集合取出其中的每一个元素 String[] abc = new String[3]{"a","b& ...

  7. java中switch语句用法详解

    1.switch语句的基本语法 int week =**: switch(week){//week为定义的变量 case **://case 之后使用空格再加 满足week的值 执行语句//当满足此c ...

  8. java中split的用法详解

    split对字符串以给定的字符进行分隔,得到字符串数组.split有两种定义方法.一种是split(String regex):String[]-string.regex是要分隔的字符. 另一种是sp ...

  9. Java中 String类的详解(非常全面细致)

    博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,

最新文章

  1. java语言的主要的知识点
  2. COM:中科院遗传发育所发表“重组菌群体系在根系微生物组研究中应用”的重要综述
  3. 学会这几个公式技巧,瞬间你就是高手
  4. MPU6050开发 -- 进阶之I2C/SPI通信协议
  5. Python自动化开发学习22-Django上
  6. python解压加密zip文件_Python:解压缩前检测一个zip文件否为加密,两种算法。
  7. RabbitMQ事务和Confirm发送方消息确认——深入解读
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的高考志愿填报管理系统
  9. 我的CCNA笔记(二)
  10. php smarty数学函数,smarty详解二:从文件读取变量、保留变量、数学计算、内建函数...
  11. 最大似然估计MLE和最大后验概率MAP
  12. dnf时装补丁教程_【时装补丁制作】消灭伸手党!最详细的图文教程~
  13. itest考试切屏能检测出来吗_itest考试作弊怎么检测
  14. 【实战】python 小型商品销售统计系统
  15. 设备管理还在不坏不修、不停不管?这5大误区一定要避免
  16. 渲染性能优化之Culling 剔除
  17. 网络管理与维护(5.1)RMON 远程网络监视
  18. Codeforces Round #807 (Div. 2) A-D
  19. win7虚拟机使用nat模式配置静态IP上网
  20. AWS 中文入门开发教学 35- MySQL@RDS - 建立MySQL数据库服务

热门文章

  1. 无源光网络(PON)介绍及其应用
  2. ATF源码篇(六):docs文件夹-Components组件(5)EL3
  3. 嵌入式开发之Opencv(二)JPEG解码加速
  4. 小仙女必备宝藏App
  5. 报表ReportViewer显示图片--rdlc
  6. h5在ios上图片资源显示不出来
  7. php100视频原始地址列表整理:
  8. 隐藏实力的 JSON.stringify,原来还可以这么用!
  9. 如何利用splashtop实现远程开机、远程唤醒电脑
  10. 【数据库】Nosql数据库的种类