String类
-
字符串是常量,创建之后不可改变
//修改字符串的内容
String str = "hello";
str = str + " world";
内存分配图:
-
字符串字面值存储在字符串池中,可以共享。
-
在Java中形成一个对象池,在这个对象池中保存多个对象,新实例化的对象如果已经在池中定义了,则不再重新定义,而从池中直接取出继续使用。
-
String就是采用这样的设计,所以当内容重复时,会将对象指向已存在的实例空间
-
实例化String对象
1、直接为String赋值
产生一个对象,字符串池中存储
String name = "xiaoming";
2、使用标准的new调用构造方法完成实例化
String name = new String("xiaoming");
package lesson2;
public class Demo03 {
public static void main(String[] args) {
String s1 = new String("java");
String s2 = new String("java");
System.out.println(s1.equals(s2));equals比较的是数值
System.out.println(s1==s2);==比较的是地址空间
}
}
1、length()
取得字符串的长度
public class Demo03 {
public static void main(String[] args) {
String content = "java是世界上最好的语言";
System.out.println(content.length());
}
}
2、charAt(int index)
从一个字符串中取出指定位置的字符
public class Demo03 {
public static void main(String[] args) {
String content = "java是世界上最好的语言";
System.out.println(content.charAt(12));
}
}
3、contains(CharSequence s)
判断字符串是否包含某个字符或字符串
public class Demo03 {
public static void main(String[] args) {
String content = "java是世界上最好的语言";
System.out.println(content.contains("java"));
}
}
4、toCharArray()
将一个字符串变为字符数组
import java.util.Arrays;
public class Demo03 {
public static void main(String[] args) {
String content = "java是世界上最好的语言";
System.out.println(content.toCharArray());
System.out.println(Arrays.toString(content.toCharArray()));
}
}
5、indexOf(String str)
从头开始查找指定的字符串首次出现的位置,找不到返回-1
public class Demo03 {
public static void main(String[] args) {
String content = "java是世界上最好的java语言.java真不赖";
System.out.println(content.indexOf("java"));
System.out.println(content.indexOf("java",5));从第五个位置开始,寻找第一次出现java的位置
}
}
6、lastIndexOf(String srt)
public class Demo03 {
public static void main(String[] args) {
String content = "java是世界上最好的java语言.java真不赖";
System.out.println(content.lastIndexOf("java"));
}
}
7、trim()
清除左右两端的空格
package lesson2;
public class Demo03 {
public static void main(String[] args) {
String content = " hello world ";
System.out.println(content.trim());
}
}
8、toUpperCase()
将一个字符串全部变为大写字母
package lesson2;
public class Demo03 {
public static void main(String[] args) {
String content = " hello world ";
System.out.println(content.toUpperCase());
}
}
9、toLowerCase()
将一个字符串全部变为小写字母
package lesson2;
public class Demo03 {
public static void main(String[] args) {
String content = " HELLO WORLD ";
System.out.println(content.toLowerCase());
}
}
10、endsWith(String suffix)
判断是否以指定的字符串结尾
package lesson2;
public class Demo03 {
public static void main(String[] args) {
String content = "hello.java";
System.out.println(content.endsWith(".java"));
}
}
11、startsWith(String prefix)
判断是否以指定的字符串开头
package lesson2;
public class Demo03 {
public static void main(String[] args) {
String content = "hello.java";
System.out.println(content.startsWith("hello"));
}
}
12、replaceAll(String regex,String replacement)
字符串替换(支持正则表达式)
package lesson2;
public class Demo03 {
public static void main(String[] args) {
String content = "hello.java";
System.out.println(content.replace("java","php"));
}
}
13、split(String regex)
按照指定的字符串进行拆分,返回一个字符串数组。(支持正则表达式)
package lesson2;
public class Demo03 {
public static void main(String[] args) {
// String content = "hello.java";
String say = "java is the best programing language";
String[] arr= say.split(" ");
System.out.println(arr.length);
for (String string: arr
) {
System.out.println(string);
}
}
}
14、equals中忽略大小写的比较
package lesson2;
public class Demo03 {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "HELLO";
System.out.println(s1.equals(s2));
System.out.println(s1.equalsIgnoreCase(s2));
}
}
15、compare是比较编码表中位置
例一:
package lesson2;
public class Demo03 {
public static void main(String[] args) {
String s1 = "abc";//97
String s2 = "xyz";//120
System.out.println(s1.compareTo(s2));
}
}
例二:
package lesson2;
public class Demo03 {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abcxyz";
System.out.println(s1.compareTo(s2));
}
}
这时候我们比较的就是长度了!
16、
substring(int beginIndex ) | 从指定位置开始,一直取到尾进行字符串的截取 |
substring(int begin,int end) | 指定截取字符串的开始点和结束点 |