String 类 常用方法

 和长度有关的方法

返回类型 方法名 作用 int length() 得到一个字符串的字符个数(一个中文是一个字符,一个英文是一个字符,一个转义字符是一个字符)

和数组有关的方法

返回类型 方法名 作用 byte[] getBytes() 将一个字符串转换成字节数组 char[] toCharArray() 将一个字符串转换成字符数组 String[] split(String)将一个字符串按照指定内容劈开

和判断有关的方法

返回类型 方法名 作用 boolean equals(String) 判断两个字符串的内容是否一模一样 boolean equalsIgnoreCase(String) 忽略大小写的比较两个字符串的内容是否一模一样 boolean contains(String) 判断一个字符串里面是否包含指定的内容 boolean startsWith(String) 判断一个字符串是否以指定的内容开头 boolean endsWith(String) 判断一个字符串是否以指定的内容结尾

和改变内容有关的方法

和改变内容有关的方法,都不会直接操作原本的字符串 而是将符合条件的字符串返回给我们,所以注意接收 返回类型 方法名 作用 

String toUpperCase() 将一个字符串全部转换成大写 String toLowerCase() 将一个字符串全部转换成小写 String replace(String,String) 将某个内容全部替换成指定内容 String replaceAll(String,String) 将某个内容全部替换成指定内容,支持正则 String repalceFirst(String,String) 将第一次出现的某个内容替换成指定的内容 String substring(int) 从指定下标开始一直截取到字符串的最后 String substring(int,int) 从下标x截取到下标y-X个元素 String trim() 去除一个字符串的前后空格

和位置有关的方法

返回类型 方法名 作用 char charAt(int) 得到指定下标位置对应的字符 int indexOf(String) 得到指定内容第一次出现的下标 int lastIndexOf(String) 得到指定内容最后一次出现的下标

 1,字符串条件操作


1.1比较字符串内容是否相等

 
     
  1. String str = "hello";
  2. System.out.println(str.equals( "hello"));
输出:true

1.2比较字符串内容是否相等(忽略大小写)

 
     
  1. String str = "hello";
  2. System.out.println(str.equals( "Hello"));
  3. System.out.println(str.equalsIgnoreCase( "Hello"));
输出:
false

true

1.3判断字符串是否等于给定的正则表达式

 
     
  1. String str = "hello";
  2. System.out.println(str.matches( "\\w+"));
输出为:true

此处应该注意,matches(String regex),参数必须是正则表达式

1.4判断字符串是否以指定的前缀开始,或者以后缀结束

指定后缀结束:

 
     
  1. String str = "hello";
  2. System.out.println(str.endsWith( "o"));
  3. System.out.println(str.endsWith( "lo"));
  4. System.out.println(str.endsWith( "llo"));
  5. System.out.println(str.endsWith( "lla"));

结果为:

true

true

true

false

指定前缀开始:

扫描二维码关注公众号,回复: 3418885 查看本文章
 
     
  1. String str= "hello";
  2. System.out.println(str.startsWith( "h"));
  3. System.out.println(str.startsWith( "he"));
  4. System.out.println(str.startsWith( "hel"));
  5. System.out.println(str.startsWith( "hol"));
结果为:

true

true

true

false

在指定索引处是否以指定前缀开始
 
     
  1. String str= "hello";
  2. System.out.println(str.startsWith( "l", 0));
  3. System.out.println(str.startsWith( "l", 1));
  4. System.out.println(str.startsWith( "l", 2));
  5. System.out.println(str.startsWith( "llo", 2));
  6. System.out.println(str.startsWith( "llo", 3));
结果为:

false
false
true
true
false

1.5判断字符串长度,以及字符串是否为空

 
     
  1. String str1 = "hello";
  2. String str2 = "";
  3. System.out.println(str1.length());
  4. System.out.println(str2.length());
  5. System.out.println(str1.isEmpty());
  6. System.out.println(str2.isEmpty());
结果为:

5
0
false
true
需要注意的是,""和null代表的含义是完全不一样的.

String str=""在内存中是这样的:


String str=null在内存中是这样的


由于null根本没有对应的堆内存空间,所以如果调用lenth()和isEmpty()方法,会出现空指针错误:

Exception in thread "main" java.lang.NullPointerException


2,字符串切割(字符串数组),字符数组

2.1字符串切割成字符串数组形式

 
     
  1. public class Test{
  2. public static void main(String []args){
  3. String str= "hello everyone my name is simon";
  4. String a[]=str.split( " ");
  5. for( int i= 0;i<a.length;i++)
  6. System.out.println(a[i]);
  7. }
  8. }
结果为:

hello
everyone
my
name
is
simon
需要注意的是,split(String regex)参数必须是正则表达式!

2.2字符串拆分成字符数组形式


 
     
  1. String str= "hello everyone my name is simon";
  2. char a[]=str.toCharArray();
  3. for( int i= 0;i<a.length;i++)
  4. System.out.println(a[i]);
输出为:
h
e
l
l
o
 
e
v
e
r
y
o
n
e
 
m
y
 
n
a
m
e
 
i
s
 
s
i
m
o
n

一丶String类

String 类本身由于其命名规范的要求肯定是一个类,但是却发现,此类在使用上较为特殊,而且发现在 String 类的操作中依然可以使用“+”或“+=”进行字符串的连接,还可以发现,各个数据类型的数据只要是碰到了 String 类的内容,则都统一向 String 进行转换,所以 String 类的使用及特点就非常的重要。

1,String的比较,涉及的常用函数为

equals(),equalsIgnoreCase()-------->比较String内容

compareTo(),compareToIgnoreCase()---------->比较String大小

regionMatches()-------->匹配子串

 
      
  1. public class StringTest {
  2. public static void main(String[] args) {
  3. String a = "ABC";
  4. String b = "abc";
  5. String c = "abcdef";
  6. // TODO Auto-generated method stub
  7. System.out.println(a.equals(b)); //字符串内容比较
  8. System.out.println(a.equalsIgnoreCase(b)); //字符串内容比较,忽略大小写
  9. System.out.println(a.compareTo(b)); //比较字符串大小
  10. System.out.println(a.compareToIgnoreCase(b)); //比较字符串大小,忽略大小写
  11. /**
  12. * 下述两个方法用来比较两个字符串中指定区域的子串。入口参数中,用toffset和ooffset分别指出当前字符串中的子串起始位置和要与之
  13. * 比较的字符串中的子串起始地址;len 指出比较长度。前一种方法可区分大写字母和小写字母,如果在 boolean ignoreCase处写 true,表示
  14. * 将不区分大小写,写false则表示将区分大小写。而后一个方法认为大小写字母有区别。由此可见,实际上前一个方法隐含了后一个方法的功能。
  15. * 定义:
  16. * regionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len);
  17. regionMatches( int toffset,String other,int ooffset,int len);
  18. */
  19. System.out.println(c.regionMatches( 0, a, 0, 3)); //区分大小写
  20. System.out.println(c.regionMatches( false, 0, a, 0, 3)); //同上
  21. System.out.println(c.regionMatches( true, 0,a, 0, 3)); //不区分大小写
  22. }
  23. }

对应的输出应该是:

false

true
-32
0
false
false
true

2,String的截取,常用函数为

public String subString(int begin)---->返回一个新的字符串从begin开始
public String subString(int begin,int end)----
>返回的字符串是从begin开始长度为end-begin的串

注意:比如有一个字符串abcdef,那么a位置是0,b位置是1,依次类推,f是5,该字符串长度为6.


 
      
  1. public class StringTest {
  2. public static void main(String[] args) {
  3. String a = "ABC";
  4. String b = "abc";
  5. String c = "abcdef";
  6. System.out.println(a.substring( 0)); //结果ABC
  7. System.out.println(a.substring( 1)); //结果BC
  8. System.out.println(a.substring( 2)); //结果C
  9. System.out.println(c.substring( 0, 4)); //结果abcd
  10. System.out.println(c.substring( 1, 4)); //结果bcd
  11. }
  12. }

split()函数是一个常用函数,去掉特定字符串,其余字符串作为数组返回.


 
      
  1. public class StringTest {
  2. public static void main(String[] args) {
  3. String c = "abkefksdfksfwekwww";
  4. String []s1 = c.split( "k");
  5. for( int i= 0;i<s1.length;i++)
  6. System.out.println(s1[i]);
  7. }
  8. }
结果为:

ab
ef
sdf
sfwe
www


猜你喜欢

转载自blog.csdn.net/hexiaoli666/article/details/81012188