String类的常用方法(轻松玩转String)

1、length( ):查看字符串长度

2、charAt( ):获取字符串中的某个值

3、getBytes( ):将字符串转换为字节数组

4、toCharArray( ):将字符串转换为字符数组

5、compareTo( ):比较两个字符串的大小,相等返回0,大于返回正数,小于返回负数

6、compareToIgnoreCase( ):比较两个字符串的大小,不考虑大小写

7、toUpperCase( )、toLowerCase( ):大、小写转换

8、indexOf( ):字符串位置查找。indexOf(int ch):在此对象表示的字符序列中第一次出现该字符的索引;如果未出现该字符,则返回 -1。  

                                                          indexOf(int ch,int fromIndex): 在此对象表示的字符序列中第一次出现的大于或等于 fromIndex 的字符的索引;如果未出现该字符,则返回 -1。

9、lastIndexOf( ):字符串位置查找,与indexOf()查找顺序相反

10、endsWith(String str ):测试字符串以指定的后缀结束

11、substring( ):substring(int beginIndex) :返回一个新的字符串,它是此字符串的一个子字符串。
                              substring(int beginIndex, int endIndex) : 返回一个新字符串,它是此字符串的一个子字符串。(左包含右不包含)

12、split(String regex ) :根据给定正则表达式的匹配拆分此字符串。

13、trim( ):用户数据后台校验前的过滤,返回字符串的副本,忽略前导空白和尾部空白


实例:

public class StringDemo {

	public static void main(String[] args) {
		String s="123456789中国";
		System.out.println(s.length()); //11
		System.out.println(s.getBytes().length);//GBK下是12, UTF-8下是13
		System.out.println(hasChinese(s));
		s="12中国asd湖12南6城市学院";
		print(s);
	}

	private static void print(String s) {
		char[] ch=s.toCharArray();
		for(char c:ch){
			if((c+"").getBytes().length>1){//汉字的字节数大于1
				System.out.println("中文字符:"+c);
			}else if(c>='a'&&c<='z' || c>='A'&& c<='Z'){
				System.out.println("英文字符:"+c);
			}else if(c>='0'&&c<='9'){
				System.out.println("数字:"+c);
			}
		}
	}

	private static boolean hasChinese(String s) {
		if(s.getBytes().length>s.length()){//只有含有汉字时,字符转换的字节长度才会大于字符串长度
			return true;
		}
		return false;
	}

}


package p36;

public class StringDemo2 {

	public static void main(String[] args) {
		//1、字符串比较大小
		String s1="H234567中国";
		String s2="Hello Java";
		System.out.println("1、"+s1.compareTo(s2));// 返回两个字符串之差(第一个不同字符的差,即‘2’与‘e’的差:   -51)
		
		//2、字符串位置查找
		String s3="adc256sadf";
		String s4="c2";
		System.out.println("2、"+s3.indexOf(s4));//2
		
		//3、查找姓名中带“飞”字的人,查找姓“张”的人。
		String[] names= { "张三", "张无忌", "赵敏", "张飞", "岳飞", "飞龙张" };
		System.out.print("3、带“飞”的人:");
		for(String name:names){
			if(name.indexOf("飞")>=0){
				System.out.print(name+"  ");
			}
		}
		System.out.println();
		System.out.print("  姓“张”的人:");
		for(String name:names){
			if(name.indexOf("张")==0){
				System.out.print(name+"  ");
			}
		}
		System.out.println();
		
		// 4、查找扩展名为“.java”的文件名。
		String[] filenames = { "aa.java", "cc.doc", "34.bat", "33.java.c",
				"java.exe", "c:\\a\\a.java" };
		String ss=".java";
		System.out.print("4、扩展名为.java文件名:");
		for(String name:filenames){
			if(name.endsWith(ss)){
				System.out.print(name+"  ");
			}
		}
		System.out.println();
		
		//5、substring()
		String c ="abcd".substring(2,3);//  相当于数学中的:[2,3)
		System.out.println("5、“abcd”.substring(2,3)= "+c);
		
		//6、split()
		String user="张三,1234,13673738888";
		String strs[] = user.split(",");
		System.out.print("6、");
		for(String s:strs){
			System.out.print(s+"  ");
		}
		System.out.println();
		user="张三,1234 13673738888";
		strs = user.split(",| ");//7、用“逗号”或“空格”进行分割
		System.out.print("7、");
		for(String s:strs){
			System.out.print(s+"  ");
		}
		System.out.println();
		user="aa.bb.cc,dd,ee fff";
		strs = user.split("\\.|,| ");//8、“.”号是特殊字符,因此要用转义字符,而且要加两个
		//strs = user.split("[.]|,| ");//“[]”也是转义字符
		System.out.print("8、");
		for(String s:strs){
			System.out.print(s+"  ");
		}
		System.out.println();
		String us ="张三|1234|13673738888";
		//strs = us.split("\\|");//9、“|”不能用这种转义的方式分割,这种情况下可先采用字符替换
		us=us.replace("|", ",");//replace()返回的是一个新的字符串
		strs = us.split(",");
		System.out.print("9、");
		for(String s:strs){
			System.out.print(s+"  ");
		}
	}

}






你可能感兴趣的:(java,String类)