String的一些常用方法

接上篇关于String,你必须知道的东西!,上次说了String的一些概念和注意事项,这篇就来整理下一些经常用操作.

1,字符串条件操作

字符串的比较在程序中是经常看见的,除了最经常的对内容比较,还有其他的一些比较方法

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

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

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

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

true

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

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

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

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

指定后缀结束:

String str = "hello";
System.out.println(str.endsWith("o"));
System.out.println(str.endsWith("lo"));
System.out.println(str.endsWith("llo"));
System.out.println(str.endsWith("lla"));

结果为:

true

true

true

false

指定前缀开始:

String str="hello";
System.out.println(str.startsWith("h"));
System.out.println(str.startsWith("he"));
System.out.println(str.startsWith("hel"));
System.out.println(str.startsWith("hol"));
结果为:

true

true

true

false

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

false
false
true
true
false

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

String str1 = "hello";
String str2 = "";
System.out.println(str1.length());
System.out.println(str2.length());
System.out.println(str1.isEmpty());
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字符串切割成字符串数组形式

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

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

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

String str="hello everyone my name is simon";
char a[]=str.toCharArray();
for(int i=0;i<a.length;i++)
	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


3,字符串与子串
































































一丶String类

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

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

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

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

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

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

}

对应的输出应该是:

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.

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

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

public class StringTest {
	public static void main(String[] args) {
		String c = "abkefksdfksfwekwww";
		
		String []s1 = c.split("k");
		for(int i=0;i<s1.length;i++)
			System.out.println(s1[i]);

	}
}
结果为:

ab
ef
sdf
sfwe
www


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值