java基础之String

String类概述
该类被final修饰,无子类,不可被复写。创建的对象一旦初始化,其内容不可被改变。

String类复写了Object类中的equals()定义了自己的独特内容,该方法用于判断字符串相同。


例:

String s1 = "abc";
String s2 = new String("abc");

System.out.println(s1==s2);
System.out.println(s1.equals(s2));

结果显示
false
true
面试中常考:这里的s1,s2有何区别?
s1在内存中一个对象,s2有两个对象。因为内存中有一个常量池存放字符串。字符串被存放进去以后,以后创建新的字符串时会优先在常量池中寻找并组3.1 将字符数组转成字符串
构造函数合而成

String substring(begin);从指定出开始到结尾 
String substring(begin,end);从begin处开始到end处结束,之间的子串。**包括begin但不包括end.**

而s2是创建一个全新的字符串。如:

String s1 = "abc";
String s3 = "abc";
System.out.println(s1==s2);

结果将是true,即s1和s3指向了同一个对象。

常见方法

1.获取

1.1 字符串长度。

int length():获取长度。
1.2根据位置获取位置上的某个字符。

char charAt(int index) :返回指定索引处字符。
1.3 根据字符获取该行字符在字符串中的位置。如果没有找到则返回-1.

int indexOf(int ch):找到该字符第一次出现的位置
int indexOf(int ch,int fromIndex):从fromIndex处开始索引。
int indexOf(String str)
int indexOf(String str,int fromIndex):从fromIndex检索字符串str的位置。
相反的,如果需要反向索引,有类似方法

int lastIndexOf(*) 从右往左索引,然后**输出其在字符串数组中的位置**

2.判断

2.1 字符串中是否包含某一个子串。

boolean contains(CharSequence str);
★特殊之处:int indexOf(str)也可以检索str是否存在。

2.2 字符串中是否有内容。

boolean isEmpty():原理就是判断length是否为0
2.3 字符串是否以指定内容开头。

 boolean startWith(String str);
2.4 字符串是否是以指定内容结尾

boolean endWith(String str);
应用场景:通过判断文件名检索所需要的文件。

2.5 判断字符串内容是否相同

boolean equals(str)

2.6 判断内容是否相同并忽略大小写

boolean equalsIgnoreCase(str)

3.转换

3.1 将字符数组转成字符串
构造函数

Stringchar[]) 
Stringchar[],offset,count)将字符数组一部分转成字符串(offset 表示最初偏移量,count表示长度)

例:

char[] arr = {'a','b','c','d','e','f'}; 
String s = new String(arr,1,3);

结果将是 bcd.因为数组下角标从0开始,故这里起始位是b,取3个字符,即为bcd.

静态方法:需要跟在String后使用

static String copyValueOf(char[]); 方法返回一个字符串,它表示的字符序列中指定数组。
static String copyValueOf(char[],offset,count);
 public static void main(String[] args) {
  
    // character array
    char[] charArr = { 'C', 'O', 'M', 'P', 'I', 'L', 'E', ' ',
    'O', 'N', 'L', 'I', 'N', 'E' };

    /* returns a String that contains the characters of the character
    array with offset as 8 and length as 6 */
    String str = String.copyValueOf(charArr, 8, 6 );

    // prints the substring with length as 6 
    System.out.println(str);
  }
}
返回ONLINE
3.2 将字符串转成字符数组

char[] toCharArray();

例:char a[]=s.toCharArray();


3.3 将字节数组转成字符串

Stringbyte[]); 
Stringbyte[],offset,count);
例:byte[] srtbyte;
String res = new String(srtbyte);

3.4 将字符串转成字节数组

byte[] getBytes();
例:String str = "Hello";
byte[] srtbyte = str.getBytes();
3.5 将基本数据类型转成字符串
static Sting valueOf();
例:char[] charArr = { 'C', 'O', 'M', 'P', 'I', 'L', 'E', ' ',
	    'O', 'N', 'L', 'I', 'N', 'E' }; 
	String d = String.valueOf(charArr);
特殊:字符串和字节数组在转换过程中是可以指定编码表的

4.替换


String replace(old char/str,new char/str);
注意:由于字符串一旦被创建不能被改变,所以这里的替换后将会返回一个新字符串副本,而原来的字符串不会有变换

5.切割

String[] split(regex)  以regex为分割符号进行分割

6.子串

String substring(begin);从指定出开始到结尾 
String substring(begin,end);从begin处开始到end处结束,之间的子串。**包括begin但不包括end.**

String s = "abcdef";
s1 = s.substring(2);
s2 = s.substring(2,4);

结果s1=cdef,s2=cd。

7.转换

7.1 将字符串转成大写或者小写

String toUpperCase();
String toLowerCase();

7.2 将字符串两端多个空格去除

String trim();

7.3 对两个字符串进行自然顺序的比较

int compareTo(str);**比较两个字符串大小,并返回第一个不同的字符之间的ASCII码值差值。**
Java中String类有一个compareTo方法,该方法返回一个int类型的数据。其比较规则是:拿出字符串的第一个字符与参数的第一个字符进行比较,如果两者不等,比较结束,返回两者的ascii差,即字符串的第一个字符减去参数的第一个字符的ascii码值,比如代码第五行的-1.如果相等,则比较第二个字符,以此类推。比较到最后还是相等的,方法返回值为0。
这里有一点需要注意:如果两个字符串的长度不同,并且一个字符串与另一个字符串的前面N个字符相等,那么这个方法返回返回两个字符串长度之差。比如代码第七行返回值为3.
举例如下:
String s1 = "abcd";
String s2 = "abce";
String s3 = "Abc";
String s4 = "abcdefg";
System.out.println(s1.compareTo(s2));
System.out.println(s1.compareTo(s3));
System.out.println(s4.compareTo(s1));
System.out.println(s4.compareTo(s2));
输出:-1 32 3 -1

public String concat(String str) 
将指定字符串连接到此字符串的结尾。

"cares".concat("s") returns "caress"
"to".concat("get").concat("her") returns "together"


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值