String类的方法摘要

String类型
String concat(String str) 字符串拼接
boolean contains(CharSequence s) 一个字符串包含另一个字符串
boolean endsWith(String suffix) 以…字符串结尾
boolean equalsIgnoreCase(String anotherString) 比较两个字符串是否相同
int indexOf(int ch) 求下标
int indexOf(int ch, int fromIndex)
int indexOf(String str)
int indexOf(String str, int fromIndex)
boolean isEmpty() 分配了空间内存
int lastIndexOf(int ch) 最后一次出现的下标
int lastIndexOf(int ch, int fromIndex)
int lastIndexOf(String str)
int lastIndexOf(String str, int fromIndex)
String replace(char oldChar, char newChar) 替换
boolean startsWith(String prefix) 以…字符串开头
boolean startsWith(String prefix, int toffset)
String substring(int beginIndex) 截取
String substring(int beginIndex, int endIndex) 从下标开始截取到下标结束
char[] toCharArray() 将字符串转换为新的字符数组
String toLowerCase() 全变小写
String toUpperCase() 全变大写
String trim() 去除两边空格
String toString() 返回String类型

@Test
public void test01() {
// 1.调用String方法API
// 创建String对象
String str = “hello”;
String s1 = new String(); // “”
String s2 = new String(“hello”); // “hello”
String s3 = new String(“hello”);
String str1 = “hello”;
System.out.println(s1 == s2);
System.out.println(str == s2);
System.out.println(s3 == s2);

	// String类将equals重写过了
	System.out.println(s3.equals(s2));
	System.out.println(s3.equals(str));
	// JDK提供了一个字符串的常量池
	System.out.println(str == str1);
}

@Test
public void test02() {
	String str = "hello";  // 常量池
	// 字符串字面量 拼接 -> 常量池
	String s1 = "he" + "llo";
	String s2 = "he";
	// 变量 + 字面量 -> new 对象
	String s3 = s2 + "llo";
	
	System.out.println(str == s1);
	System.out.println(str == s3);
	// 结论:字符串在特定场合下面可以用 == 比较
	// 		但是不建议使用==,建议使用equals
}

@Test
public void test03() {
	String s1 = "hello";
	// 字符串拼接
	s1 = s1.concat("hi");
	System.out.println(s1);
	
	// 获得输入的邮箱对应的用户名 wrerwer@163.com
	String email = "324wewearyyu@163.com";
	// 字符串截取 - 从指定下标开始,截取到结束
	String user = email.substring(5);
	System.out.println(user);
	// 字符串截取 - 从指定下标开始,到指定下标结束(前包含、后不包含)
	user = email.substring(0, 7);
	System.out.println(user);
	// 获得@第一次出现所在的下标位置
	int index = email.indexOf("@");
	user = email.substring(0, index);
	System.out.println(user);
	// 获得@最后一次出现的下标位置
	index = email.lastIndexOf('@');
	user = email.substring(0, index);
	System.out.println(user);
}
@Test
public void test04() {
	String str = "qnmlg b, 你真的是个大sb";
	str = str.replace("qnmlgb", "**");
	System.out.println(str);

	String q1="helloworld";
	String q2="HelloWorld";
	System.out.println(q1.equalsIgnoreCase(q2));
	String qq="   hello  wlorld  ";
	// 去除左右两边空格   ' '  \n \t \r 
	System.out.println(qq.trim());
	String w="EdcEE";
	// 都变大写 都变小写 忽略大小写比较
	System.out.println(w.toLowerCase());
	System.out.println(w.toUpperCase());
}

正则表达式

@Test
public void test05() {
	String email = "ere334@163.com";
	// ^[a-zA-Z]\w{5,17}@163\.com$
	String regex = "^[a-zA-Z]\\w{5,17}@163\\.com$";
	System.out.println(regex);
	boolean ismatches = email.matches(regex);
	System.out.println(ismatches);
}
@Test
public void test06() {
	String str = "qnmlgb, 你真的是个大sbsb, 真是nc";
	// (qn)?(mlgb|sb|nc)*
	String regex = "(qn)?(mlgb|sb|nc)+";
	str = str.replaceAll(regex, "**");
	System.out.println(str);
}
@Test
public void test07() {
	String ip = "192.168.6.66";
	// 获得每一段的数字
	String regex = "\\.";
	String[] ss = ip.split(regex);
	System.out.println(Arrays.toString(ss));
	
	String word = "hello hi, .how are you? I'm fine!";
	// . , ! 空格 ""
	// [ ,\.!\?]+
	regex = "[ ,\\.!\\?]+";
	String[] words =word.split(regex);
	System.out.println(Arrays.toString(words));
	System.out.println(words.length);
	// ftp->temp->resource->api->正则表达式.zip
}

@Test
public void test08() throws UnsupportedEncodingException {
	char c = 'c';
	c = (char) 97;
	c = '\u4e2d'; // Unicode编码/字符集 - Java-JVM
	System.out.println(c);
	// byte -128~127
	// char 0~2^16-1  = 65535
	//      \u0000~\uffff
	
	String str = "哈哈";
	// 字符串转变成字节数组 - 系统级编码(GBK/UTF-8)
	byte[] bs = str.getBytes(); // - 系统默认编码
	System.out.println(Arrays.toString(bs));
	bs = str.getBytes("UTF-8"); // 根据指定的gbk字符集来拆解字符串
	System.out.println(Arrays.toString(bs));
}
@Test
public void test09() throws UnsupportedEncodingException {
	byte[] bs = {-27, -109, -120, -27, -109, -120};
	
	// 编码:将字节数组转换成字符串 
	String str = new String(bs,"utf-8"); // 默认系统编码 - GBK
	System.out.println(str);
	
	// 根据指定的字符集来编码
	String str1 = new String(bs, "gbk");
	System.out.println(str1);
	// 解决str1的乱码问题 先解码 -> 再编码
	str1 = new String(str1.getBytes("gbk"), "utf-8");
	System.out.println(str1);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值