java入门

字符串

String概述

String,StringBuilder,StringJonier,StringBuffer,Pattern,Matcher

1.String是Java已经定义好的一个类,定义在java的包中,使用的时候不需要导包

2.Java程序中的所有字符串文字,比如:"abcde",都叫做此类的对象

3.字符串不可变,它们的值在创建后不能被更改

创建String对象的两种方式

1.直接赋值   比如:String name="Martyn";

2.new         构造方法                            说明

pulbic String()                                       创建空白字符串,不含任何内容

public String(String original)                 根据传入的字符串,创建字符串对象

public String(char[ ] chs)                       根据字符数组,创建字符串对象

public String(byte[ ] chs)                        根据字节数组,创建字符对象

public class stringDemo1 {
    public static void main(String[] args) {
        //字符串的常见操作
        //1.直接赋值
        String s1 = "Martyn and i are total buds!!!";
        System.out.println(s1);
        //2.空参构造,可以获取一个空白字符串的对象 ""
        String s2 = new String();
        System.out.println("@" + s2 + "!");
        //3.abc----Qbc char
        //传递一个字符串数组,根据字符数组的内容再创建一个新的字符串对象
        char[] chs = {'a', 'b', 'c', 'd'};
        String s3 = new String(chs);
        System.out.println(chs);
        //传递一份字节数组,根据字节数组的内容再创建一个新的字符串对象
        //应用场景:以后在网中传输的数据其实都是自己信息
        //我们一般要把字节信息进行转换,转成字符串,此时就要用到这个构造
        //问题:我这里为什么会是地址值呢?
        byte[] bytes = {97, 98, 99, 100};
        String s4 = new String(bytes);
        System.out.println(s4);
    }
}

==到底比的是什么?

基本数据类型比较的是数据值    引用数据类型比较的是地址值

字符串比较

boolean equals方法(要比较的字符串)                                        完全一样的结果才是true,否则为false

boolean equalsgnoreCase(要比较的字符串)                             忽略大小写的比较

public class stringDemo2 {
    public static void main(String[] args) {
        //1.创建两个字符串对象
        String s1 = new String("abc");
        String s2 = "Abc";
        //2.==号比较
        //基本数据类型:比的是数据值
        //引用数据类型:比的是地址值
        System.out.println(s1 == s2);//false
        //3.比较字符串对象中的内容是否相等
        boolean result = s1.equals(s2);
        System.out.println(result);//false
        //4.比较字符串对象中的内容是否相等,忽略大小写
        boolean result2 = s1.equalsIgnoreCase(s2);
        System.out.println(result2);//ture
        //1 一 壹
        //忽略大小写只能是在英文状态下的 a A
    }
}
public class stringDemo3 {
    public static void main(String[] args) {
        //用键盘录入的数跟对象new出来的数比较是否相等
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str1 = sc.next();
        //在代码中再定义一个字符串
        String str2 = "abc";
        //再用==号进行比较会相等吗?
        System.out.println(str1 == str2);//false
    }
}

public char charAt(int index): 根据索引返回字符

public int length():返回次字符串的长度

数组的长度:数组名.length

字符串的长度:字符串对象.length()

public static void main(String[] args){
Scanner sc=new Scanner();
System.out.println();
String str=sc.next();
for(int i=0;i<str.length();i++){
char c=str.charAt(i);
System.out.println(c);
}
}

方法名                                                                       说明

public StringBuilder append(任意类型)                     添加数据,并返回对象本身   

public StringBuilder reverse()                                    反转容器中的内容  

public int length()                                                       返回长度(字符出现的个数)

public String toString()                                              通过toString()就可以实现把StringBuilder转换为String

StringJoiner概述

StringJoiner跟StringBuilder一样,也可以看成是一个容器,创建之后内容是可变的

作用:提高字符串的操作效率,而且代码编写特别的简洁

StringJoiner构造

方法名                                                                                   说明

public StringJoiner(间隔符号)                                               创建一个StringJoiner对象,指定拼接时时间间隔符号

public StringJoiner(间隔符号,开始符号,结束符号)                创建一个StringJoiner对象,指定拼接时时间间隔符号,开始符号,结束符号  扩展底层原理5:StringBuilder原码分析   

默认创建一个长度为16的字节数组

添加的内容长度小于16,直接存

添加的内容大于16会扩容(原来的容量*2+2)     

如果扩容之后还不够,以实际长度为准     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值