String类

String类就是字符串类型,C语言中要表示字符串只能使用字符数组或者字符指针,而Java提供了字符串类

一.常用方法

1.字符串构造

String类提供的构造方法非常多,常用的有以下三种

String名是一个引用

System.outprintln(s1.isEmpty());//判断字符串是不是空的
//如果字符串长度为0,返回true,否则返回false
String str1 = "";//这个字符串是空的
String str2 = null;//str2这个引用不指向任何对象

在Java中,引起来的也是String类型对象

2.字符串的比较

字符串比较是常见操作,比如字符串排序。Java中提供了4种方式

1.==比较是否引用同一个对象

注意:对于内置类型,==比较的是变量中的值;对于引用类型==比较的是引用中的地址

  String str1 = "abcd";
        String str2 = "abcd";
        System.out.println(str1 == str2);
        String str3 = new String("abcd");
        String str4 = new String("abcd");
        System.out.println(str3 == str4);
        System.out.println(str3.equals(str4));

输出:

true
false
true

为什么第一个会输出true呢?

这是因为堆中会有个常量词,""会放入常量词

2.compareTo比大小

第一个不一样的位置的大小就是整个字符串的大小

如果两个字符串前面位置都一样,然后长度不一样,那么谁长谁大

3.compareToIgnoreCase(),与compareTo类似,但是忽略大小写影响

3.字符串查找

int lastIndexOf(String str):从后往前找,返回str第一次出现的位置,没有返回-1

int lastIndexOf(String str,int fromIndex):从fromIndex的位置开始找,从后往前找str第一次出现的位置,没有返回-1

4.转化

1.数值和字符串转化

2.大小写转换

3.字符串转数组

  String s = "hello";
        //字符串转数组
        char[] ch = s.toCharArray();
        for (int i = 0; i < ch.length; i++) {
            System.out.print(ch[i]+" ");
        }
        System.out.println();
        //数组转字符串
        String s2 = new String(ch);
        System.out.println(s2);
    }

4.格式化

String st = String.format("%d-%d-%d",1999,9,1);
        System.out.println(st);

5.字符串替换

使用一个指定的新的字符串替换掉已有的字符串数据,可用的方法如下:

把所有的ab替换为oooo

把所有b替换成z

替换首个ab成kk

把所有ab都替换成kk

注意:由于字符串是不可变对象,替换不修改当前字符串,而是产生一个新的字符串

6.字符串拆分

可以将一个完整的字符串按照指定的分隔符划分为若干个子字符串

可用方法:

String[] spilit(String regex):将字符串全部拆分

String[] split(String regex,int limit):将字符串以指定格式,拆分成limit组

将str以&分割

输出

以空格分隔

输出四个值

将str2分成两组

输出

注意:

输出四组

7.字符串截取

从一个完整的字符串之中截取出部分内容,有如下方法

String substring(int beginIndex):从指定索引截取到结尾

String substring(int beginIndex,int endIndex):索引部分内容

输出bcdef

8.其他操作方法

9.字符串的不可变性

String是一种不可变对象,字符串中的内容是不可改变的,是因为

String类在设计时就是不可改变的,String类实现描述中以及说明了

10.字符串修改

注意:尽量避免对String类型对象进行修改,因为String类是不能修改的,所有的修改都会创建新的对象,效率非常底下

二.StringBuilder和StringBuffer

1.StringBuffer介绍

由于String的不可更改特性,为了方便字符串修改,Java提供了StringBuider和StringBuffer类。这两个类的大部分功能是相同的

等等

append

append的优势在于没有重建一个新的对象,效率较高

String和StingBuider最大的区别在于String的内容无法修改,而StringBuider的内容可以修改。频繁修改字符串的情况考虑使用StringBuider

注意:String和StringBuider类不能直接转换。如果要想互相转换,可以采用如下原则

  • String变为StringBuider:利用StringBuider的构造方法或append()方法
  • StringBuider变为String:调用toString()方法

三.String类oj

1.第一个只出现一次的字符


 

2.字符串最后一个单词的长度

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值