0
点赞
收藏
分享

微信扫一扫

String类型(包括面试常问的方法)

小贴贴纸happy 2022-04-23 阅读 62
java

一、声明字符串语法:String s;

二、创建字符串的两种方式:

(1)创建字符串对象时直接赋值

String s1 ="hello";

String s2 = "君不见黄河之水天上来";

注意:通过这种方式创建字符串时,当两个字符串引用相同的常量时,就会指向相同的实体,例如:

String str1,str2;

str1 = "How are you"; str2 = "How are you";

在上述代码中,str1和str2指向同一个对象,存储在同一个内存地址中。

(2)由一个字符串创建另一个字符串。例如:

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

(3)由字符型数组来创建字符串,例如:

char[] c = {'a','b',"c",'d','e'};

String s1 = new String(c);//s1为"abcde"

String s2 = new String(c,2,3);//s2为"cde"

其中,创建s2时表示从该字符数组索引2的位置开始,提取3个元素,创建一个字符串

二、String类中常用的方法

(1)length():获取字符串的长度:str.length()

如:String s = "hello world!";int len = s.length();

(2)concat():字符串的连接;str1.concat(str2)

例如:String s1 = "hello";String s2 = "world";

        String s3 = s1.concat(s2);//s3的值为"helloworld";

(3)<1> equals():字符串的比较:str1.equals(str2);

equals()方法比较两个字符串的内容是否相同,该方法的返回值为boolean型,如果两个字符串不为null且内容相同时,返回true,负责返回false。例如:

String s1 = new String("helloworld");//创建字符串,并赋值为“helloworld”

String s2 = new String("helloworld");//创建字符串,并赋值为"helloworld"

s1.equals(s2);//true

注意:当用"=="来比较两个字符串时,实际上是判断两个字符串是否为同一个对象,因此,即使字符串内容相同,由于它们是不同的对象(也就是对应的引用地址不同),返回值也为false。所以,上述代码中,"s1==s2"的值为false

<2>compareTo:按照字典顺序比较两个字符串的大小,其语法格式:str1.compareTo(str2);

其中str1和str2是字符串。该方法返回值为int类型,如果str1和str2相同,返回值为0;如果str1>str2,返回值大于为正值;如果str1<str2,返回值为负值。实际上,该方法的返回值等于两个字符串中第一个不相等的字符在Unicode字符集中位置的差值。例如:

String s = new String("abcde");

s.compareTo("body");//返回值为-1;

s.compareTo("aba");//返回值为2;

s.compareTo("abcde");//0;

在上述代码中,a,b,c在Unicode字符集中的位置分别为97,98,99,所以返回值分别为-1,2,0;

注意:如果想要比较两个字符串的内容是否相同,且比较时会忽略大小写,可使用equalsIgnoreCase()方法,其方法和equals()方法类似。

如果想要按照字典顺序比较两个字符串的大小,且比较时忽略大小写,可使用compareToIgnoreCase()方法,其方法与compareTo()方法类似。

(4)字符串的检索:1.根据字符查找

indexOf():返回字符(串)在字符中首次出现的索引位置,其语法格式为:str.indexOf(substr);

其中,str表示字符串,substr表示想要查找的字符(串),该方法的返回值为int型,它从str的头开始检索substr,并返回首次出现substr的位置(从0开始计算)。如果没有检索到substr,返回值为-1

lastIndexOf():返回字符(串)在字符串中最后出现的索引位置,其语法格式如下:str.lastIndexOf(substr)。

其中,str表示字符串,substr表示想要查找的字符(串)。该方法的返回值是int型,它从str的头开始检索substr,并返回最后出现的substr的位置(从0开始计算)。如果没有检索到substr,则返回值为-1

示例:在字符串I am a good student中检索字符a首次出现和最后出现的位置,可以使用以下 代码实现:

String s = new String("I am a good student");

s.indexof('a');//返回值为2

s.lastIndexof('a')//返回值为5

2.根据索引查找

charAt()方法可以在字符串中根据索引值查找字符,其语法格式如下:str.charAt(index);

其中,str表示字符串,index表示索引值,它从0开始。该方法的返回值是char型。

示例:String s = new String("I am a good student");

s.charAt[7];//返回值为‘9’;

(五)substring()字符串的截取

语法:str.substring(start); str.substring(start,end);

其中,str表示字符串,start和end表示起始索引和结束索引,为整形常量或表达式。该方法返回的是从start到end-1截取的字符串。如果不指定end,表示介去到指定字符串的末尾

示例:string china = "I love china"

str.substring(2,5);//s1为“lov”

str.substring(2);//s2为“love china”

(六)字符串的替换

1.replace()方法:实现将字符串的指定字符(串)替换成新字符(串),其语法格式如下:

str.replace(target,replacement);

其中str表示字符串,targe表示指定字符(串),replacement表示新字符(串)

示例:string s = "There iit a sheep";//定义字符串并且赋值

String temp = s.replace('t','s');//temp为“There is a sheep”;

2.replaceFirst()方法:实现将字符串中匹配的第一个字符串替换成新字符串,其语法:

str.replaceFirst(regex,replacement);

3.replaceAll()方法:实现将字符串中匹配的所偶字符串替换成新的字符串,其语法:

str.replacAll(regex,replacement);

其中,str表字符串,regex表示匹配的字符串,也可以是正则表达式,replacement表示新字符串。

示例:String s = "the cat on the three is small";

String t = s.replaceFirst("the","that");//t为"that cat on the three is small";

String v = s.replaceAll("the","that");//v为"that cat on that three is small";

区别:replace()方法的参数是字符或者字符串,但replaceAll()方法的参数只能是字符串

(六)字符串的大小写转换

toLowerCase()方法:实现将字符串中的所有字符转换成小写,其语法格式如下:

str.toLowerCase();

toUpperCase()方法:实现将字符串中的所有字符转换为大写,其语法格式为:

str.toUpperCase();

这两个方法都会返回一个新的字符串,长度和原字符的长度相同。如果原字符中包含非字母的字符,不会发生改变。示例:

String s  = new String("Hello,小李");

s.toLowerCase();//返回值为"hello,小李"

s.toUpperCase();//返回值为"HELLO,小李"

(七)去除字符串中首尾空格

trim()方法实现去掉一个字符串的首位空格,其语法格式:str.trim();

示例:String s = "  I am a student  ";

String temp = s.trim();//结果为:"I am a student"

(八)判断字符串的内容

1、startsWith()方法:判断字符串是否以指定的前缀开始,其语法格式为:str.startsWith(prefix)

2、endsWith()方法:判断字符串是否以指定的后缀开始,其语法格式为:str.endsWith(suffix)

3、contains()方法:判断字符串中是包含指定的字符串,其语法格式:str.contains(string)

其中,str表示字符串,prefix表示作为前缀的字符串,suffix表示作为后缀的字符串,String表示指定的字符串。这3个方法的返回值都是boolean型示例:

String s  = "华为手机";

s.startswith(("华为");//true

s.endsWith("电视");//true

s.contains("手机");//true

(九)字符串的分割lsplit()

split()方法可根据给定的分隔符对字符串进行拆分,其语法格式为:

s.split(refex);

其中,str表示字符串,regex表示分隔符,支持正则表达式。该方法返回一个字符串数组

示例:String s1 = "圆明园,颐和园,故宫";

Sting[] s2 = s1.split(",");//{圆明园,颐和园,故宫}

使用分隔符需注意以下几点:

1、在Java中,特殊字符作为split()方法的参数时,如“,”,“|”,“\”,“$”等,须进行转义。例如:使用“.”作为分隔符,须写成String.split("\\.")。

2、如果在一个字符串中有多个分隔符,可以用"|"作为连字符。例如:字符串s="aount=? and uu=? or n=?",如果以"and" 和"or" 作为分隔符,可以写成s.split("and|or")。

(十)获取字符数组

toCharArray()方法可将字符串转换为一个字符数组,其语法:

str.toCharArray();

其中,str表示字符串、。该方法返回一个字符数组。示例:

String s = "更上一层楼";

char[] c = s.toCharArray();//c为{'更','上','一',层','楼'}
 

举报

相关推荐

0 条评论