一、创建字符串
String str1="Hello world";
String str2=new String("Hello world");
char[] array={
'a','b','c'};
String str3=new String(array);
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
二、字符串使用
(一)、字符串比较原理
//字符串比较
String str1="Hello world";
String str4="Hello world";
//放在了字符串常量池中
System.out.println(str1==str4);
//两个引用(地址)比较
String str2=new String("Hello world");
System.out.println(str1==str2);
//内容比较
System.out.println(str1.equals(str2));
(二)、字符串内容不可变
//字符串不可变:虽然内容发生了改变,但是其引用了3个对象,本不是其本身发生了改变。
String str5="hello";
str5=str5+" world";
str5+="!!!";
System.out.println(str5);
输出: hello world!!!
注意:虽然是输出了“hello world”,但是这是三个str5引用拼接而成,已经不是第一个str5的引用改变了对象。
若是一定要改变字符串内容:真能通过反射机制
//通过反射来改变String对象的内容
System.out.println("=======反射==========");
String str6="Hello";
// 获取 String 类中的 value 字段. 这个 value 和 String 源码中的 value 是匹配的
Field valueField=String.class.getDeclaredField("value");
// 将这个字段的访问属性设为 true
valueField.setAccessible(true);
// 把 str 中的 value 属性获取到
char[] value=(char[]) valueField.get(str6);
// 修改 value 的值
value[0]='h';
System.out.println(str6);
输出:hello
(三)字符与字符串
//字符与字符串
public class Demo1 {
public static void main(String[] args) {
//将字符数组中的内容转化为字符串
char[] Array1={
'h','e','l','l','o'};
String str1=new String(Array1);
System.out.println(str1);
//部分字符数组转化为字符串
String str2=new String(Array1,1,3);
System.out.println(str2);
//取得指定索引位置的字符
System.out.println(