文章目录

  • 数组
  • String类
  • String 与new String()的区别
  • "=="与equals的区别
  • StringBuilder 与 String的区别
  • StringBuilder的使用方法
  • String类的常用方法
  • 构造方法
  • 重载


数组

数组是用于储存多个相同类型数据的集合。
举个例子:一间屋子里有许多书,杂乱无章,现在将书分门别类的排放:中国音乐类、计算机类、西方音乐类等。这样分类之后,查阅书籍就比较方便。图书馆图书分类也是用了数组这一思想。

string 数组 包含 java string类的数组_java

数组的定义与使用
数组[] 数组名 = new 类型[常量表达式]
int[] arr = new int[5];

应用案例:遍历数组,输出学生成绩

import java.util.Scanner;

public class Array {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int[] arr = new int[5];  
		for(int i=0;i<5;i++) {
			System.out.println("请输入第"+(i+1)+"个学生的成绩:");
			int m = 0;
			arr[i]=sc.nextInt();
		}
		for(int i=0; i<5; i++) {
			System.out.println("学生"+(i+1)+"成绩为:"+arr[i]);
		}
		
	}
}

string 数组 包含 java string类的数组_javase_02

String类

String 与new String()的区别

public class mystrig {
	public static void main(String args[]) {
		String str1 = "Hello CSDN!";
		String str2 = "Hello CSDN!";
		String str3 = "Hello Git!";
		String str4 = new String("Hello CSDN!");
		
		System.out.println(str1==str2);	//true
		System.out.println(str1==str3);
		
		System.out.println("------------------------------------");
		System.out.println(str1==str4);	//false
		System.out.println(str2==str4);	//false
	}
}

string 数组 包含 java string类的数组_string 数组 包含 java_03

由上面的案例我们可以发现:
str1str2输处true
str1
str4输出false
解释:
(1)String str1是给str1赋值一个常量,当给str2赋值时(String str2)时,系统自动去常量区去找是否有相同内容的一个系统变量,如果有,则将这个系统变量的地址赋给str2。因此,str1与str2的地址是相同的,所以为true
(2)new String() 是在内存堆中,给String类型声明一块新的空间,只要有new关键字,就会分配新空间,并将空间的地址分配给新的变量。因此,str1与str4的地址并不相同,所以为false
(3)由此,也可以看出,== 是比较两个变量的地址

"=="与equals的区别

"=="与equals()都是判断条件,若判断为真,则输出true;若判断为假,则输出false。

区别:==是比较两个变量的地址,而equals()是比较两个变量的值

public class myequals {
	public static void main(String args[]) {
		String str1 = "中国象棋";
		String str2 = new String("中国象棋");
		System.out.println("==判断是不能添加字符串输出的"+str1==str2);
		System.out.println("equals为:"+str1.equals(str2));
	}
}

string 数组 包含 java string类的数组_javase_04

并且“==判断是不能添加字符串的。”

StringBuilder 与 String的区别

StringBuilder与String都可用来定义字符串变量

区别:

StringBuilder在增加一串字符串后,只是在后面接个尾巴,地址不改变

String在增加一串字符串之后,系统会给它分配一个新的空间和地址

注:如果是经常要改变的字符串,StringBuilder是个更好的选择,更加高效

string 数组 包含 java string类的数组_javase_05


string 数组 包含 java string类的数组_javase_06

StringBuilder的使用方法

StringBuilder的使用方法与String的方法略有不同

public class StringBuderBuffer {

	public static void main(String[] args) {
		StringBuilder sb= new StringBuilder("Hello Android");
		String str = new String("I lvoe Android");
//		System.out.println(sb==sb.append("test"));//增加字符串
//		System.out.println(str==str.concat("test"));//增加字符串
//		System.out.println(sb.insert(0,"好"));//在指定位置增加指定字符串
//		System.out.println(sb.reverse());//逆序
		System.out.println(sb.substring(4));//从start开始截取,包含start
		System.out.println(sb.substring(4,6));//[4,6)
		
		//从StringBuilder向String转换;
		String str1=str.toString();
		//从String向StringBuilder转换;
		StringBuilder sb2 = new StringBuilder(str1);
		System.out.println(sb2);
	}
}

string 数组 包含 java string类的数组_string 数组 包含 java_07

======================

String类的常用方法

public class StringDemo2 {
	public static void main(String args[]) {
		String str="Hello world!";
		String str1="Hello world!";
		System.out.println("str的字符串长度为:"+str.length());
		System.out.println("str的字符串的子串1为:"+str.substring(1));//字符串从0开始
		System.out.println("str的字符串字串2为:"+str.substring(0, 5));//(起始,终止)左闭右开
		System.out.println("str的字符串是否以指定后缀结束:"+str.endsWith("d!"));
		System.out.println("返回指定字符串在此字符串中第一次出现的的索引:"+str.indexOf("o"));
		System.out.println("返回指定字符串在此字符串中最后一次出现的的索引:"+str.lastIndexOf('o'));
		System.out.println("获取第某个索引的字符:"+str.charAt(3));
		System.out.println("将字符串连接到str后输出"+str.concat("+hero!"));
		System.out.println("清除左右两端的空格:"+str.trim());
		System.out.println("比较两个字符串是否相等:"+str.equals(str1));
		System.out.println("替换指定字符串"+str.replace("hello", "bye"));
		System.out.println("判断str是否以指定字符串开始"+str.startsWith("hello"));
		System.out.println("使字符串全部小写"+str.toLowerCase());
	}
}

string 数组 包含 java string类的数组_字符串_08

构造方法

1.当一个对象被创建时候,构造方法用来初始化该对象。
2.构造方法和它所在类的名字相同,但构造方法没有返回值(连void也不能有)。
注:(void是空类型返回值;void 是 java.lang 中的类;void 类是一个不可实例化的占位符类,它保持一个对代表 Java 关键字 void 的 Class 对象的引用。)
3.通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象。
4.不管是否自定义构造方法,所有的类都有构造方法
因Java自动提供了一个默认构造方法,默认构造方法的访问修饰符和类的修饰符相同(类为 public,构造函数也为 public;类改为 protected,构造函数也改为 protected)。
5.一旦你定义了自己的构造方法,默认构造方法就会失效。

构造方法:

public  Person(String name,int age,String phone) {
		 this.name=name;
		 this.age=age;
		 this.phone=phone;
	}

重载

方法的重载:
1.方法名一致,对于参数来说:个数不一致
构造方法的重载(对于其他方法也一样):

public Person(String name, int age, String phone, String gendar, String address) {
//		super();
		this.name = name;
		this.age = age;
		this.address = address;
		this.phone = phone;
		this.gendar = gendar;
	}
	public  Person(String name,int age,String phone) {
		 this.name=name;
		 this.age=age;
		 this.phone=phone;
	}

2.方法名一致,对于参数个数一致,但参数定义的顺序不一致

public void showInfo(String name,int age) {//传两个参数
		System.out.println(this.getName()+",年龄是:"+this.getAge());
	}
	public void showInfo(int age,String name) {//传两个参数
		System.out.println(this.getName()+",年龄是:"+this.getAge());
	}

3.对于方法名一致,方法返回类型不一致的,不构成方法的重载_报错:Duplicate method

string 数组 包含 java string类的数组_java_09