String对象的特点:

83 阅读2分钟

​本文已参与「新人创作礼」活动,一起开启掘金创作之路。​

String对象的特点:

以“” 方式给出的字符串,只要字符串序列相同(顺序和大小相同),无论在程序代码中出现几次,JVM都只会建立一个String对象,并在字符串池中维护。

public class StudentTest{
	public static void main(String args[]) {
		//采用构造方法的方式得到对象
		char[] chs = {'a','b','c'};//这个第一次写的时候写成了双引号,值得注意
		String s1 = new String(chs);
		String s2 = new String(chs);
		System.out.println(s1 == s2);//这个比较的是s1和s2的地址  结果是false
		//采用直接赋值的方式得到对象
		String s3 = "abc";
		String s4 = "abc";
		System.out.println(s3 == s4);//这个比较的是s3和s4的内容  结果是true
		//比较字符串对象地址是否相同
		System.out.println(s1==s3);//结果是 false
	}
}

字符串的比较

使用==作比较

        基本类型:比较的是数据值是否相同

        引用类型:比较的是地址值是否相同

对于字符串来说

public static void main(String args[]) {
		//构造方法的方式得到对象
		char[] chs = {'a','b','c'};
		String s1 = new String(chs);
		String s2 = new String(chs);
		
		//直接赋值的方式得到对象
		String s3 = "abc";
		String s4 = "abc";
		
		//比较字符串地址是否相同
		System.out.println(s1==s2);//false
		System.out.println(s1==s3);//false
		System.out.println(s3==s4);//true
		
		//比较字符串对象内容是否相同
		System.out.println(s1.equals(s2));//true
		System.out.println(s1.equals(s3));//true
		System.out.println(s3.equals(s4));//true
	}


1.构造方法的创建

        如果没有定义构造方法,系统将给出一个默认的无参书构造方法

        如果定义了构造方法,系统将不再提供默认的构造方法

2.构造方法的重载

         如果自定义了带参构造方法,还要使用无参构造方法,就必须再写一个无参数构造方法

3.推荐的使用方法

无论是否使用,都手工书写无参数构造方法

(黑马程序员的笔记,仅供个人学习使用)

 题目: 定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果。例如,键盘录入abc,输出结果为:  cba

package itheima;

import java.util.Scanner;

//键盘录入一个字符串,用Scanner实现
//定义一个方法,实现字符串反转,返回值类型String,参数String s
//在方法中用StringBuilder实现字符串的反转,并把结果转成String返回
//调用方法,用一个变量接收结果
//输出结果
public class Test1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);//从键盘录入  记住!!
        System.out.println("请输入一个字符串");
        String line = sc.nextLine(); //sc.nextLine() 然后 ctrl+alt+v 自动生成

        String s = myReverse(line);
        System.out.println(s);
    }
    public  static String myReverse(String s){
        StringBuilder sb = new StringBuilder(s);
        sb.reverse();
        String toString = sb.toString();
        return toString;
    }
}

\

​ ​

 题目:定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。例如,数组int[] arr = {1,2,3},执行方法后的输出结果为:[1,2,3]

package itheima;
//1.定义一个int类型的数组,用静态初始化完成数组元素的初始化
//2.定义一个方法,用于把int数组中的数据格式按照指定格式拼接成一个字符串返回,返回值类型为String,参数列表int[] arr
//3.在方法中用StringBuilder按照要求进行拼接,并把结果转化为String返回
//4.调用方法,用一个变量接受结果
//5.输出结果
public class Test1 {
    public static void main(String[] args) {
        int[] arr = {1,2,3};
        String string = arrayToString(arr);
        System.out.println(string);

    }
    public static String arrayToString(int[] arr){
        StringBuilder s = new StringBuilder();
        s.append("[");
        for(int i=0; i<arr.length;i++){
            if(i == arr.length-1){
                s.append(arr[i]);
            }else{
                s.append(arr[i]).append(",");
            }
        }
        s.append("]");
        String s1 = s.toString();
        return s1;
    }
}

\