Java学习笔记:String类

String类:

String类代表了字符串,Java中所有的字符串(如:“abcd”)都由String作为实例来实现。

字符串是常量;它们的值在创建之后不能更改,重新赋值并没有改变而是改变了引用,如果有直接引用,没有则重新创建一个。

String的构造方法:

public class StringTest1 {
	public static void main(String[] args){
		//String的构造方法
		//String() 
		String str = new String();
		System.out.println(str.length());
		//String(byte[] bytes)把字节数组转化为字符串
		byte[] bys = {97,98,99,100,101};
		String str1 = new String(bys);
		System.out.println(str1);
		//String(byte[] bytes, int offset, int length)把字节数组从offset开始length长度转化为字符串
		String str2 = new String(bys,1,3);
		System.out.println(str2);
		//String(char[] value)把字符数组转化为字符串
		char[] ch ={'a','b','c','d','e','1','2','我'};
		String str3 = new String(ch);
		System.out.println(str3);
		//String(char[] value, int offset, int count)把字符数组从offset开始length长度转化为字符串
		String str4 =new String(ch,2,4);
		System.out.println(str4);
		//String(String original)把字符串常量值转成字符串
		String str6 = new String("abcdefg");
		System.out.println(str6);
		//字符串字面值可以看做是一个字符串对象 最常用的
		String str7 = "abcde";
		System.out.println(str7);
	}
}

运行的结果:

0
abcde
bcd
abcde12我
cde1
abcdefg
abcde

String的方法:

1.获取

public class StringTest2 {
	public static void main(String[] args){
		String str1 ="abcdefabcd";
		//int  length():获取字符串的长度
		System.out.println("str1.length():"+str1.length());
		//char  charAt( int  index )根据位置获取该位置上某个字符
		System.out.println("str1.charAt(3):"+str1.charAt(3));
		//int  indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引
		System.out.println("str1.indexOf('a'):"+str1.indexOf('a'));
		//int  indexOf(int ch,int fromIndex)返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索
		System.out.println("str1.indexOf('b',5):"+str1.indexOf('b',5));
		//int  indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引
		System.out.println("str1.indexOf('fab'):"+str1.indexOf("fab"));
		//int  indexOf(String str,int fromIndex)返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始
		System.out.println("str1.indexOf('abc',2):"+str1.indexOf("abc",2));
		//int lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引
		System.out.println("str1.lastIndexOf('a'):"+str1.lastIndexOf('a'));
		//int lastIndexOf(int ch, int fromIndex)返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索
		System.out.println("str1.lastIndexOf('a',3):"+str1.lastIndexOf('a',3));
		//int lastIndexOf(String str)返回指定子字符串在此字符串中最右边出现处的索引
		System.out.println("str1.lastIndexOf('bc'):"+str1.lastIndexOf("bc"));
		//int lastIndexOf(String str, int fromIndex)返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索
		System.out.println("str1.lastIndexOf('ab',4):"+str1.lastIndexOf("ab",4));

	}
}

运行的结果:

str1.length():10
str1.charAt(3):d
str1.indexOf('a'):0
str1.indexOf('b',5):7
str1.indexOf('fab'):5
str1.indexOf('abc',2):6
str1.lastIndexOf('a'):6
str1.lastIndexOf('a',3):0
str1.lastIndexOf('bc'):7
str1.lastIndexOf('ab',4):0

2.判断

public class StringTest3 {
	public static void main(String[] args){
		String str1 = "abcdefg";
		String str2 = "cde";
		String str3 = new String("fg");
		String str4 = "Fg";
		//boolean contains(CharSequence s)当且仅当此字符串包含指定的 char 值序列时,返回 true 
		System.out.println(str1.contains(str2));
		//boolean isEmpty()当且仅当 length() 为 0 时返回 true 
		System.out.println(str1.isEmpty());
		//boolean startsWith(String prefix)测试此字符串是否以指定的前缀开始 
		System.out.println(str1.startsWith(str2));
		//boolean startsWith(String prefix, int toffset)测试此字符串从指定索引开始的子字符串是否以指定前缀开始
		System.out.println(str1.startsWith(str2,2));
		//boolean endsWith(String suffix)测试此字符串是否以指定的后缀结束。 
		System.out.println(str1.endsWith(str3));
		//boolean equals(Object anObject)将此字符串与指定的对象比较。 
		System.out.println(str3.equals(str4));
		//boolean equalsIgnoreCase(String anotherString)将此 String 与另一个 String 比较,不考虑大小写。 
		System.out.println(str3.equalsIgnoreCase(str4));
	}
}
运行的结果:

true
false
false
true
true
false
true

3.转换

public class StringTest4 {
	public static void main(String[] args){
		String str = "abcde";
		String str2 = "123";
		//byte[] getBytes():把字符串转换为字节数组。
		byte[] bys = str.getBytes();
		for(int i=0;i<bys.length;i++){
			System.out.print(bys[i]+"\t");
		}
		System.out.println();
		//char[] toCharArray():把字符串转换为字符数组。
		char[] ch = str.toCharArray();
		for(int i=0;i<ch.length;i++){
			System.out.print(ch[i]+"\t");
		}
		System.out.println();
		//注意:String类的valueOf方法可以把任意类型的数据转成字符串。
		//static String valueOf(char[] chs):把字符数组转成字符串。
		char[] ch1 = {'z','x','c','v','b','n','m'};
		System.out.println(String.valueOf(ch1));
		//static String valueOf(int i):把int类型的数据转成字符串。
		System.out.println(String.valueOf(2017));
		//String toLowerCase():把字符串转成小写。
		System.out.println(str.toLowerCase());
		//String toUpperCase():把字符串转成大写。
		System.out.println(str.toUpperCase());
		//String concat(String str):把字符串拼接。
		System.out.println(str.concat(str2));
		
	}
}
运行的结果:
97 98 99 100 101
a b c d e
zxcvbnm
2017
abcde
ABCDE
4.替换、 切割、 子串、 去空格、比较

public class StringTest5 {
	public static void main(String[] args) {
		String str1 = "abcde";
		System.out.println("替换前" + str1);
		// 替换
		// String replace(char old,char new)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有oldChar 得到的
		str1.replace('a', 'X');
		System.out.println("替换后" + str1);
		// String replace(String old,String new)返回一个新的字符串,它是通过用 newString替换此字符串中出现的所有 oldString 得到的
		str1.replace("Xbc", "123");
		System.out.println("再次替换后" + str1);
		// 切割
		// String[] split(String regex); 参数为指定的字符串。
		String[] str2 = "aaa|bbb|ccc|ddd".split("|");
		for (int i = 0; i < str2.length; i++) {
			System.out.print("--" + str2[i]);
		}
		//子串
		//String subString(int beginIndex)返回一个新的字符串,它是此字符串的一个子字符串
		String str3 = str1.substring(2);
		System.out.println(str3); 
		//String subString(int beginIndex,int endIndex)返回一个新字符串,它是此字符串的一个子字符串
		String str4 = str1.substring(1,3);
		System.out.println(str4);
		//去空格
		//String trim()返回字符串的副本,忽略前导空白和尾部空白
		String str5 = "\tabcd123dcba ";
		System.out.println(str5.trim());
		//比较
		//int compareTo(String anotherstring)按字典顺序比较两个字符串
		char[] ch = {'a','b','c','d','e'};
		String str6 = new String(ch);
		System.out.println(str1.compareTo(str6));
	}
}
运行的结果:

替换前abcde
替换后abcde
再次替换后abcde
----a--a--a--|--b--b--b--|--c--c--c--|--d--d--dcde
bc
abcd123dcba
0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值