java中String类的使用

java中String类的使用(均摘自《java语言程序设计》)

一,字符串的简单使用

功能方法
获得字符串长度:s.length();
返回指定位置的字符:s.charAt(index);
连接两个字符串法1:s1.concat(s2)
连接两个字符串法2:s3 = s1 + s2
将所有字符大写:s.toUpperCase()
将所有字符小写:s.toLowerCase()
去掉字符串两端的空格:s.trim()
提取字符串从begin下标到结尾的子串:s.substring(int begin)
提取字符串从begin下标到end-1下标的子串:s.substring(int begin, int end)

二,String对象的比较方法及子串判断

功能方法
直接比较,返回布尔值:s1.equals(s2)
不区分大小写比较,返回布尔值:s1.equasIgnoreCase(s2)
直接比较,返回整型s1.compareTo(s2)
不区分大小写比较,返回整型:s1.compareToIgnoreCase(s2)
判断s1中是否有特定前缀s2,返回布尔值:s1.startsWith(s2)
判断s1中是否有特定后缀s2,返回布尔值:s1.endsWith(s2)
判断s2是否为s1的子字符串,返回布尔值:s1.contains(s2)

compareTo()的返回值说明:s1.compareTo(s2)

1,若s1和s2相等,则返回0;

2,若 s1 小于 s2,比如 s1 为 “abc”,s2 为 “abg”,因为 ‘c’ 和 ‘g’ 相差 4,所以结果返回 -4。

3,若 s1 大于 s2, 比如 s1 为 “abd”,s2 为 “aba”,因为 ‘d’ 和 ‘a’ 相差 3,所以结果返回 3。

三,获取字符串中的字符下标或者子串下标

功能方法
返回字符串中出现的第一个ch的下标。如果没有匹配的,返回-1s.indexOf(ch)
返回字符串中fromlndex之后出现的第一个ch的下标:如果没有匹配 的,返回-1s.indexOf(ch, fromlndex)
返回字符串中出现的第一个字符串s1的下标。如果没有匹配的,返问-1s.indexOf(s1)
返回字符串中fromlndex之后出现的第一个字符串s1的下标,如果没有匹配的,返回-1s.indexOf(s1, fromlndex)
返回字符串中出现的最后一个ch的下标。如果没有匹配的,返回-1s.lastlndexOf(ch)
返回字符串中fromlndex之前出现的最后一个ch的下标。如果没有匹配的,返回-1lastIndexOf(ch, fromlndex)
返回字符串中出现的最后一个字符串s1的下标。如果没有匹配的,返回-1s.lastlndexOf(s1)
返回字符串中fromlndex之前出现的最后一个字符串s1的下标。如果没有匹配的,返回-1s.lastIndexOf(s1, fromlndex)

四,字符串的替换和分隔

|

功能方法
将字符串中所有四配的字符替换成新的字符,然后返回新的字符串replace(oldChar, newChar)
将字符串中第一个匹配的子字符串替换成新的子字符串,然后返回新的字符串replaceFirst(oldString, newString)
将字符串中所有匹配的子字符串替换成新的子字符串,然后返回新的字符串replaceAll(oldString, newString)
返回–个字符串数组,其中包含被分隔符分隔的子字符串集split(delimiter)

对split()的功能说明:

String[] tokens = “Java,C?C#,C++”.split("[. , : ;?]")

split()括号里使用了正则表达式,是指匹配 .、,、:、;、?这五个字符,将这五个字符设为分隔符,所以 tokens 数组中四个位置存储的字符串分别为 Java、 C、 C# 和 C++。
若要以空格为间隔,则可以使用 str.split(" +")或str.split("\s+"),第二种可以将用tab键得来的空格也作为分隔标志,要更好。

五,依照模式匹配、替换和分割

通过使用正则表达式来匹配、替换和分割一个字符串。

1,正则表达式匹配方法matches()

"Java".matches("Java");       
"Java is fun".matches("Java");
"Java is cool".matches("Java");
"Java hello".matches("Java");
//以上四个例子均返回true

这里的 “Java.*” 是一个正则表达式,表示以 “Java” 开头,后面紧跟着 0 个或多个字符。


String s = "420-02-4534";
s.matches("\\d{3}-\\d{2}-\\d{4}");
String a = "420=54!5465";
a.matches("\\d{3}=\\d{2}!\\d{4}");
//以上两个例子均返回true,其中,\\d表示单个数字位, \\d{3}表示三个数字位

注意,上面两个例子中分隔符分别为 “-” 和 “=”,但并非所有的符号都可以用作分隔符,如$、^、*、(、)等符号就不能用作分隔符,否则会报错或返回false。

2,正则表达式替换方法

可以将 replaceAll 、replaceFirst 和正则表达式结合在一起。

String s = "a+b$#c".replaceAll("[$+#]", "NNN");
System.out.print(s);
//输出为aNNNbNNNNNNc

上例中的 [$+#] 会匹配字符串中的 $、+、#,将这些字符全部替换为 “NNN”。

3,正则表达式分割方法

见第四条。

六,字符串与字符数组之间的转换。

1,字符串转换为字符数组

(1)使用toCharArray()方法:

char[] chars = "Java".toCharArray();

(2)使用getChars(int sBegin, int sEnd, char[] dst, int dstBegin)方法:
将字符串 s 中从 sBegin 到 sEnd - 1的字串复制到字符数组 dst 中从下标 dstBegin 开始的位置。

char[] dst = {'J','A','V','A','1','3','0','1'};
"CS3720".getChars(2,6,dst,4);
//dst现在变为{'J','A','V','A','3','7','2','0'}

2,字符数组转换为字符串

(1)使用构造方法 String(char[])

char[] dst = {'J','A','V','A','1','3','0','1'};
String s = new String(dst);

(2)使用 valueOf() 方法

char[] dst = {'J','A','V','A','1','3','0','1'};
String s = String.valueOf(dst);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值