IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java中String类、字符串常量池、字符串常用方法 -> 正文阅读

[Java知识库]Java中String类、字符串常量池、字符串常用方法

String类:

String代表字符串类,java中所有双引号中的内容都称为字符串,如:“hello”。字符串是不可改变的,因此字符串是可以共享使用的,相当于char字符数组,但是底层原理是byte字节数组。

创建字符串的四种方式:

// 1.创建字符串对象有四中方式,如下:
public class Stringobj{
    public static void main(String[] args){
        // 1-1:第一种括号中不传参直接创建:new String(),括号留空表示创建的是空白字符。
        String str1 =new String();
        System.out.println(str1);//""
        // 1-2:第二种根据字符数组的内容创建:new String(字符数组变量名),括号中写字符数组变量名,不能直接写字符数组表达式,否则解析错误,如:{'a','b'}。
        char[] char1 = {'o','k'};
        String str2 = new String(char1);
        System.out.println(str2);//ok,ok实际是有双引号的字符串
        // 1-3:第三种根据字节数组创建:new String(byte数组变量名),计算机底层都是字节,因此可以直接使用字节创建。
        byte[] byte1 = {97,98,99};//a的字节数为97,b的字节数为98,c的字节数为99
        String str3 = new String(byte1);
        System.out.println(str3);//abc
        // 1-4:直接创建:"字符串的内容",如:
        String str4 = "hello,my name is kuhai.";
        System.out.println(str4);//hello,my name is kuhai.
    }
}

字符串的常量池:
字符串中直接使用双引号包裹的字符串就在常量池中,字符串常量池存在于堆当中,常量池中的字符串可以共享。

// 1.常量池:双引号直接包裹着的字符串是在常量池中的。
// 2.==在基本数据类型中是对值的进行比较,在引用型数据类型中时是对地址值的比较。
public class StringPool{
    public static void main(String[] args){
        String str1 = "123";
        String str2 = "123";
        char[] chararr = {'1','2','3'}; 
        String str3 = new String(chararr);
        System.out.println(str1 == str2);//true,表明str1和str2的地址值相同
        System.out.println(str1 == str3);//false,表明str1和str3的地址值不相同
        System.out.println(str2 == str3);//false,表明str2和str2的地址值不相同
    }
}

String类的常用方法:

public class StringMethods{
    public static void main(String[] args){
        // 1.字符串内容比较:
        // 1-1:==是对对象地址值进行比较的,若要比较两个字符串内容(区分大小写),那么可以使用:equals(Object)方法,参数可以是任何对象,此方法通过.调用,只有调用者和传入的参数相同时,才会返回布尔值true,如:
        String str1 =  "123";
        String str2 = "123";
        char[] arr = {'1','2','3'};
        String str3 = new String(arr);
        String str4 = "kuhai";

        Boolean str1and2 = str1.equals(str2);
        Boolean str1and3 = str1.equals(str3);
        Boolean str2and3 = str2.equals(str3);
        Boolean str2and4 = str2.equals(str4);

        System.out.println(str1and2);//true
        System.out.println(str1and3);//true
        System.out.println(str2and3);//true
        System.out.println(str2and4);//false
        // 提示:equals方法具有对称性,即:str1.equals(str2)和str2.equals(str1)效果是一样的;当常量和变量进行比较时,推荐常量调用equals方法,将变量传入方法中。

        // 1-2:equalsIgnoreCase(String),忽略英文字母大小写对内容进行比较,内容相同返回布尔值,如:
        String strabc = "abc";
        String strABC = "ABC";
        Boolean result1 = strabc.equals(strABC);
        Boolean result2 = strabc.equalsIgnoreCase(strABC);
        System.out.println(result1);//false
        System.out.println(result2);//true  

        //2.获取字符串字符的个数:length(),如:
        System.out.println(str1.length()); //3

        // 3.字符串拼接:concat(String),将被调用该方法的字符串和传入的字符串拼接起来且原字符串都不变,只是会生成新的字符串返回,如:
        String hw = "hello".concat(" world");
        System.out.println(hw);//hello world

        // 4.获取字符串指定位置的字符:charAt(int),需要注意:索引从0开始,也就是说,字符串中第一个字符为索引为0,如:
        String sayhello = "hello,my name is kuhi!";
        char chars = sayhello.charAt(4);
        System.out.println(chars);//o

        // 5.查找某字符在字符串中第一次出现的位置:indexOf(String),返回索引值,没有则返回-1,如:
        String hel = "hello";
        int indexhel = hel.indexOf("l");
        System.out.println(indexhel);//2

        // 6.截取字符串:substring(int),当给一个索引时表示从某索引位置开始截取后面的所有字符串,当传入两个参数时,表示截取[int1,int2)区间的字符,如:
        String numstr = "12345";
        String  substr = numstr.substring(1,3);
        System.out.println(substr);//23

        // 7.字符串转换为字符数据:toCharArray(),将某字符串转换为字符数组并返回,原来字符串不变,如:
        String strtest1 = "abcd";
        char[] arrtochararr = strtest1.toCharArray();
        System.out.println(arrtochararr[1]);//b,通过索引的方式拿到数组的元素

        // 8.字符串转换为字节数组:getBytes(),将某字符串转换为字节数组并返回,原来字符串不变,如:
        byte[] bt = "abc".getBytes();
        System.out.println(bt[0]);//97,通过索引拿到数组的元素

        // 9.字符串替换:replace(oldstr,newstr),将某字符串中旧的字符替换为新的字符并返回,原字符串不变,如:
        String says = "你好";
        String replacestr = says.replace("你","他");
        System.out.println(replacestr);//他好

        // 10.字符串分割:split(String),将字符串按照某规则进行分割成几部分,并以数组的形式返回,原字符串不变,如:
        String names = "jack,李明,韩梅梅";
        String[] namearr = names.split(",");//这里实际是正则表达式,若要以英文句号切割,那么就得传入:\\. ,因为英文句号在正则中有特殊含义。
        System.out.println(namearr[1]); //李明
    }
}

提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者删除。
笔者:苦海

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-19 11:44:20  更:2021-10-19 11:45:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 21:39:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码