String第一个字母大写,和包裹类型一样
String s;
String是一个类,String的变量是对象的管理者而非所有者
就像数组变量是数组的管理者而非所有者一样
new=创建
String s=new String(“a string”)
创建了一个String的对象
用“a string”初始化这个对象
创建管理这个对象的变量s
String s=“hello”
编译器创建一个string类的对象交个s来管理
import java.util.Scanner;
public class Mains {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
String s=new String("Hello");
System.out.println(s+"world");//自动讲引号以外的变成字符串输出Helloworld
System.out.println(s+12+24);//输出Hello1224
}
}
定义string时
s=in.next和in.nextLine的区别是in.next只读一个词,读到空格停止;in.nextLine读整个句子
如果用==来比较字符串,那么比较的并不是字符串的内容,而是管理者
想要比较字符串的内容,需要用到s.equals
import java.util.Scanner;
public class Mains {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
String s;
s=in.next();
System.out.println(s);
System.out.println(s.equals("bye"));
}
}
所以说,用==是在比较是不是同一个东西,用equals才是在比较内容是否相同