Java String类

打印 上一主题 下一主题

主题 919|帖子 919|积分 2757

目录

概述

 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。
jdk中提供非常多的字符和字符串操作方法及构造方法,这里只介绍一些常用的方法和构造方法。完整的String类下的方法可以参考官方的API文档。
本地API文档下载: https://kohler.lanzouv.com/ikIfV078pbhe
在线API文档:https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html
API文档截图:

对象创建

直接使用字面值

可以直接定义String类型的变量直接给其赋值一个字符串字面值
例:
  1. String name = "愷龍";
复制代码
使用构造方法

可以使用String中定义的构造方法来创建对象。String类下有非常多的构造方法,这里只介绍几个常用的。
String()
public String();
初始化新创建的字符串对象,使其表示空字符序列。
示例代码:
  1. public static void main(String[] args) {
  2.                 //使用无参构造创建。字符串的内容为空 相当于 ""
  3.         String s1 = new String();
  4.     }
复制代码
String(byte[] bytes)
String(byte[] bytes);
将数组转换为字符串。
示例代码:
  1. public static void main(String[] args) {
  2.                
  3.         byte[] bytes = {68,74,84,85};
  4.         String s = new String(bytes);
  5.         System.out.println(s);//输出结果为DJTU,这里是将数字通过ASC码表转换为了字母
  6.     }
复制代码
结果:

String(byte[] bytes, int offset, int length)
通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。
参数:
bytes:要解码为字符的 byte
offset: 要解码的第一个 byte 的索引
length: 要解码的 byte 数 的长度
示例代码:
  1. public static void main(String[] args) {
  2.         byte[] bytes = {68,74,84,85};
  3.         String s = new String(bytes,0,2);
  4.         System.out.println(s);//输出结果为DJ,从第0个开始长度为2个
  5.         String s2 = new String(bytes,0,1);
  6.         System.out.println(s2);//输出结果为D,从第0个开始长度为1个
  7.     }
复制代码
结果:
String(char[] value)
转换字符数组为字符串类
示例代码:
  1. public static void main(String[] args) {
  2.         char[] chars = {'D','J','T','U'};
  3.         String s = new String(chars);
  4.         System.out.println(s);//输出结果为DJTU
  5.     }
复制代码
结果:
String(char[] value, int offset, int count)
参数:
value - 作为字符源的数组。
offset - 初始偏移量。
count - 长度。
就是在数组value上选取一部分成为String对象。
示例代码:
  1. public static void main(String[] args) {
  2.         char[] chars = {'D','J','T','U'};
  3.         String s = new String(chars,0,1);
  4.         System.out.println(s);//输出结果为D
  5.         String ss = new String(chars,0,2);
  6.         System.out.println(s2);//输出结果为DJ
  7.     }
复制代码
结果:

常用方法

方法解释String[]        split(String regex)把一个字符串按照指定的分隔符切割成多个字符串,把多个字符串放在一个字符串数组中返回char[] toCharArray();把一个字符串的内容转换成一个字符数组byte[] getBytes();把一个字符串的内容转换成一个byte数组String substring(int index);把某个字符串从index索引开始截取到最后String substring(int begin,int end)把某个字符串索引begin到索引end截取出来boolean equals(Object anObject)判断两个字符串的内容是否相同split方法演示
  1.     public static void main(String[] args) {
  2.         String s = "DJTU,China,LiaoNing,DaLian";
  3.         String[] strs = s.split(",");//以,分割
  4.         for (int i = 0; i < strs.length; i++) {
  5.             System.out.println(strs[i]);
  6.         }
  7.     }
复制代码
结果:

toCharArray方法演示
  1. public static void main(String[] args) {
  2.         String s = "DJTU";
  3.         char[] chars = s.toCharArray();
  4.         for (int i = 0; i < chars.length; i++) {
  5.             System.out.println(chars[i]);
  6.         }
  7.     }
复制代码
结果:
getBytes方法演示
  1.     public static void main(String[] args) {
  2.         String s = "DJTU";
  3.         byte[] bytes = s.getBytes();//按照ASC码表转换为数字
  4.         for (int i = 0; i < bytes.length; i++) {
  5.             System.out.println(bytes[i]);
  6.         }
  7.     }
复制代码
结果:
substring方法演示
  1.     public static void main(String[] args) {
  2.         String s = "DJTU";
  3.         String substring = s.substring(1);//从第[1]个开始截取
  4.         System.out.println(substring);
  5.     }
复制代码
结果:
  1.     public static void main(String[] args) {
  2.         String s = "DJTU";
  3.         String substring = s.substring(1,2);//从第[1]个开始到第[2]个结束(不包含第[2]个)
  4.         System.out.println(substring);
  5.     }
复制代码

equals方法演示
  1.     public static void main(String[] args) {
  2.         String s = "DJTU";
  3.         String s2 = "DJTU";
  4.         String s3 = "DJTUD";
  5.         boolean flag = s.equals(s2);
  6.         boolean flag1 = s.equals(s3);
  7.         System.out.println(flag);//输出true
  8.         System.out.println(flag1);//输出false
  9.     }
复制代码
结果:
特点


  • 一个字符串一旦创建其内容是永远不会变的
  • 字符串效果上相当于是char[]字符数组,但是底层其实是byte[]字节数组
如图片失效等问题请参阅公众号文章:https://mp.weixin.qq.com/s/_vctLlUqXqy7_vWBwYaFgg
欢迎关注我的公众号:"愚生浅末",一起交流学习。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

尚未崩坏

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表