1.知识点:
- 不可变字符串
- 可变字符串
2.知识点运用:
1.不可变字符串:
- 1.字符串
* 1. 不可变的字符串 一旦创建 内容不能改变
* 2. == 比较两个对象地址是否相同
* equals 比较两个对象的内容是否相同
String a = "a";
String b = "a";
System.out.println(a == b);
System.out.println(a.equals(b));
//都打印true
- 2 字符串的创建:
//空字符串,没意义
String str3 = new String();
String url = "http://www.baidu.com";
//使用字节数组 创建一个字符串
byte[] name = {'A','b','c'};
String str4 = new String(name);
System.out.println(str4);
//打印结果:Abc
byte[] name2 = {97,98,99};
String str5 = new String(name2);
System.out.println(str5);
//打印结果:abc
//使用字节数组的一部分 创建一个字符串
String str6 = new String(name,0,2);
System.out.println(str6);
//打印结果:Ab
//一个汉字占两个字节,所用char类型接收
char[] hello = {'你','好','啊'};
String h = new String(hello);
System.out.println(h);
//打印结果:你好啊
- 3 字符串的常用方法:
1.charAt:获取字符串中的一个字符
char[] hello = {'你','好','啊'};
String h = new String(hello);
char c = h.charAt(0);
System.out.println(c);
//打印结果:你
2.compareTo:两个字符串的比较,返回结果:0:表示相同 ; >0:大于 ; <0:小于
byte[] name = {'A','b','c'};
String str4 = new String(name);
byte[] name2 = {97,98,99};
String str5 = new String(name2);
//忽略了字母的大小写
int result = str4.compareToIgnoreCase(str5);
System.out.println(result);
//打印结果:0
3.concat:两个字符串的连接
byte[] name2 = {97,98,99};
String str5 = new String(name2);
char[] hello = {'你','好','啊'};
String h = new String(hello);
String nStr = str5.concat(h);
System.out.println(nStr);
//打印结果:abc你好啊
4.contains:判断一个字符串是否包含另外一个字符串
boolean r = "hello".contains("llo");
System.out.println(r);
//打印结果:true
5.判断是否包含某个字符串
String url = "http://www.baidu.com";
if (url.endsWith(".com")){
System.out.println("包含");
}
if (url.startsWith("http")){
System.out.println("包含");
}
if (url.startsWith("www",7)){
System.out.println("包含");
}
//打印结果:包含
包含
包含
6.equals:两个字符串进行比较
if ("abc".equals("ABC")){
System.out.println("相同");
}else{
System.out.println("不相同");
}
//打印结果:不相同
7.indexOf:判断一个子字符串在另外一个字符串里面的起始位置(不存在返回值为)
String i1 = "hello Java";
int index = i1.indexOf("Java");
System.out.println(index);
//打印结果:6
8.length:获取字符串的长度
String i1 = "hello Java";
int a = i1.length();
System.out.println(a);
9.substring:获取子字符串(从index到结尾)
String i1 = "hello Java";
String sStr = i1.substring(6);
System.out.println(sStr);
String sStr2 = i1.substring(6,9);
System.out.println(sStr2);
//打印结果:Java
Jav
2.可变字符串:
- StringBuffer 线程安全的 效率不高
- StringBuilder 反之,但是我们多用StringBuilder
- 方法:
1.append :在末尾追加
//创建的同时准备6个字符的空间
StringBuilder sb = new StringBuilder(6);
sb.append("I ");
sb.append("love ");
sb.append("Android ");
System.out.println(sb);
//打印结果:I love Android
2.insert: 插入数据
StringBuilder sb = new StringBuilder(0);
sb.append("I love Android");
sb.insert(1," also");
System.out.println(sb);
//打印结果:I also love Android
3.delete:删除数据
StringBuilder sb = new StringBuilder(0);
sb.append("I love Android");
sb.delete(2,6);
System.out.println(sb);
//打印结果:I Android
4.repla :替换
StringBuilder sb = new StringBuilder(0);
sb.append("I love Android");
int start = sb.indexOf("Android");
int end = start + "Android".length();
sb.replace(start,end,"you");
System.out.println(sb);
//打印结果:I love you
网友评论