java程序设计学习第十七天
(String类)
/*
*
* String类代表字符串,java程序中的所有字符串字面值(如"abc")都作为此类的实例实现。
* 就是说 "abc" 都是String类的对象
*
* 字符串的特点:
* 1、字符串的内容永不可变
* 2、字符串是可以共享使用的
* 3、字符串效果上是相当于一个char[],但是实际底层存储的是byte[]
*
* 常用的三种构造方法
* 1、public String() 创建一个空白的字符串,不包含任何内容
* 2、public string(char[]array) 根据字符数组来创建字符串
* 3、public string(byte[] array) 根据字节数组来创建字符串
*
* 最直接的方式:
* String str="class5";
*
*/
public class String {
public static void main(String[] args) {
String str1=new String();//小括号留空,没有内容
System.out.println("第一个字符串:"+str1);
System.out.println("********");
char[] chararray= {'a','b','c','d'};
System.out.println(chararray);
String str2=new String(chararray);
System.out.println(str2);
System.out.println("********");
byte [] bytearray= {97,98,99};
System.out.println(bytearray);
String str3=new String(bytearray);
System.out.println(str3);
System.out.println("********");
String str4="class5";
System.out.println(str4);
}
}
``
/*
*
- 字符串常量池
- int a=5
- int b=6
- 对于基本类型==比较的是指
- 对于引用类型==比较的地址值
*/
public class StringPool {
public static void main(String[] args) {
String str1=“abc”;
String str2=“abc”;
System.out.println(str2);
char[] chararray= {‘a’,‘b’,‘c’};
String str3=new String(chararray);
System.out.println(str1str2);// 第一个和第二个的地址是一样的
System.out.println(str1str3);
System.out.println(str2==str3);
str2=“cde”;
System.out.println(str2);
}
}
/*
*
- public boolean equal(Object obj)
- 说明:
- 1、这个方向具有对称性 a.equal(b) b,equal(b)
- 2、但是建议写成"Hello".equal(str1)
*/
public class StringEquals {
public static void main(String[] args) {
String str1=“Hello”;
String str2=“Hello”;
System.out.println(str2);
char[] chararray= {‘H’,‘e’,‘l’,‘l’,‘o’};
String str3=new String(chararray);
System.out.println(str1.equals(str2));
System.out.println(str2.equals(str3));
System.out.println(str1.equals(str3));
System.out.println(str1.equals(“Hello”));
System.out.println(“Hello”.equals(str1));
System.out.println("=");
String str4=null;
// System.out.println(str4.equals(“Hello”));
System.out.println(“Hello”.equals(str4));
System.out.println("=");
String str5=“Hello”;
System.out.println(“Hello”.equals(str5));
System.out.println("==========");
System.out.println(“Hello”.equalsIgnoreCase(str5));
}
}
public class StringGet {
public static void main(String[] args) {
//1.字符串长度
int length=“agegbagfdygdszdgagdygbsdhdshd”.length();
System.out.println(“字符串长度”+length);
//2.字符串拼接
String str1=“Hello”;
String str2=“class5”;
String str3=str1.concat(str2);
System.out.println(str1);//Hello
System.out.println(str2);//class5
System.out.println(str3);//Helloclass5 重新创建了一个字符串,并不是在原来字符串上进行修改
//3.获得指定索引位置的单个字符
char ch=“Hello”.charAt(4);
System.out.println(“0号索引位置的字符是:”+ch);
//查找某个字符串第一次出现的位置
String origanl=“syiadjfak”;
int index=origanl.indexOf(“llo”);
System.out.println(index);
System.out.println(origanl.indexOf(“class”));
}
}
/*
*
- 分割字符串
- public string[] split(string)
*/
public class StringSplit {
public static void main(String[] args) {
String str1=“aaa bbb ccc”;
String[] array1=str1.split(" ");
for(int i=0;i<array1.length;i++) {
System.out.println(array1[i]);
}
}
}
`
/*
*
* public string substring(index)
* public string substring(int begin,int end)
*
*/
public class SubString {
public static void main(String[] args) {
String str1="sakdfhk";
String str2=str1.substring(5);
System.out.println(str1);
System.out.println(str2);
String str3=str1.substring(2,5);
System.out.println(str3);
}
}
/*
*
* public string substring(index)
* public string substring(int begin,int end)
*
*/
public class SubString {
public static void main(String[] args) {
String str1="sakdfhk";
String str2=str1.substring(5);
System.out.println(str1);
System.out.println(str2);
String str3=str1.substring(2,5);
System.out.println(str3);
}
}
public class Math {
public static void main(String[] args) {
//去绝对值
System.out.println(Math.abs(3.14));
System.out.println(Math.abs(0));
System.out.println(Math.abs(-3.14));
System.out.println("=======");
//向上取整
System.out.println(Math.ceil(3.19));
System.out.println(Math.ceil(3.5));
System.out.println(Math.ceil(3.0001));
System.out.println("========");
//向下取整
System.out.println(Math.floor(3.91));
System.out.println(Math.floor(3.5));
System.out.println(Math.floor(3.0001));
System.out.println("=======");
System.out.println(Math.round(20.4));
System.out.println(Math.round(20.5));
}
}
/*
*
* 如果用static修饰成员方法,变成了静态方法,静态方法不属于对象,属于类
* 可以通过对象来调用
* 也可以通过类直接调用
*
*/
public class StaticMethod {
public static void main(String[] args) {
MyClass obj=new MyClass();
obj.method();//普通方法,必须通过对象类调用
obj.methodStatic();//可以通过对象来调用 正确不推荐
MyClass.methodStatic();//通过类直接调用 正确 推荐
}
}
/*
*
* 如果一个成员变量用static关键字修饰,那么这个变量不属于对象,而属于所在的类 多个对象共享同一份数据
*
*/
public class StaticFiled {
public static void main(String[] args) {
Student one=new Student("郭靖",19);
one.setRoom("3306教室");
System.out.println(one.getName()+" "+one.getAge()+" "+one.getRoom());
Student two=new Student("黄蓉",16); //并没有设置黄蓉的教室
System.out.println(one.getName()+" "+one.getAge()+" "+one.getRoom());
}
}