Day5-2020-07-22 String字符串 static关键字 java.util.Arrays方法 Math 类

2020-07-22

  • String字符串
    • 字符串比较值————equals
    • 字符串语法
  • static关键字
    • 静态代码块
  • java.util.Arrays方法
  • Math 类

String字符串

程序中所有双引号字符串,都是String类的对象

特点:
1,字符串内容永不可变。(有一个字符串池(直接双引号得到的),当创建字符串时,如果字符串已经存在于池中,则将返回现有字符串的引用,而不是创建新对象。)
2,字符串效果上相当于char[]字符数组,但是底层原理是byte[]字节数组
3,new得到的不在字符串池中

//创建方法
public class Day4_3 {

	public static void main(String[] args) {
	//字符串的三种创建方法
		//空参构造
		String str1=new String();
		System.out.println(str1); 			// 
		
		//字符数组创建
		char[] arry= {'a','b','c'};
		String str2=new String(arry);
		System.out.println(str2);  			//abc
		
		//byte数组创建
		byte[] arry1= {97,98,99};
		String str3=new String(arry1);
		System.out.println(str3); 			//abc
		
		//直接创建
		String str4="Hello";
		System.out.println(str4); 			//Hello 
	}

}

字符串比较值————equals

1,比较地址用== 比较值用 equals(object obj)
2,当比较的内容一个常量一个变量时,推荐把常量放在前面 常量.equals(变量)

public class Day_5 {

	public static void main(String[] args) {
		String str1 = "Hello";
		String str2="Hello";
		char[] arry= {'H','e','l','l','o'};
		String str3= new String(arry);
		
		//equals(object obj)判断字符串是否相同
		System.out.println(str1.equals(str2));				//true
		System.out.println(str2.equals(str3));				//true
		System.out.println(str1.equals(str3));				//true
		System.out.println("Hello".equals(str1));			//true
		System.out.println("hello".equals(str1));			//false
	}

}

字符串语法

public class Day5_2 {

	public static void main(String[] args) {

		//获取字符串长度
		int length="abcdefghijklmnopq".length();
		System.out.println(length);
		
		//拼接字符串
		String str1="Hello";
		String str2="world";
		String str3=str1.concat( str2);	
		System.out.println(str1);		//Hello
		System.out.println(str2);		//world
		System.out.println(str3);		//Helloworld
		
		//获取指定位置的单个字符
		String ch="Hello";
		System.out.println(ch.charAt(2));	//l
		
		//查找参数字符串在本来字符串中第一次出现位置	否则返回-1
		String ch1="HelloHelloworldHelloworld";
		System.out.println(ch1.indexOf("ll"));	//2
		System.out.println(ch1.indexOf("a"));	//-1
		
		//字符串截取
			//public String substring(int index);截取参数位置到末尾
			//public String substring(int begin,int end);截取参数开始到结尾
		String str4="abcdefghijklmnopq";
		String str5=str4.substring(7);
		System.out.println(str5);				//hijklmnopq
		String str6=str4.substring(3, 7);
		System.out.println(str6);				//defg
		
		//字符串变字符数组
			//public char[] toCharArray();
		String str7="Hello";
		System.out.println(str7.toCharArray()[1]);	//e
		char[] ch2=str7.toCharArray();
		System.out.println(ch2[3]);	 				//l
		System.out.println(ch2.length);				//5
		
		//字符串变byte数组
			//public byte[] getBytes();
		String str8="Hello";
		byte[] by=str7.getBytes();
		System.out.println(by[3]);	 				//108
		System.out.println(by.length); 				//5
		
		//字符串替换
			//public String replace(CharSequence oldString,CharSequence newString)
		String str9="helloHello";
		String str10=str9.replace('o', 'a');
		System.out.println(str10); 					//hellaHella
		
		//字符串切割
			//public String[] split(String regex);
		String str11="aaa,bbb,ccc,ddd";
		String[] str12=str11.split(",");
		for(int i=0;i<str12.length;i++) {
			System.out.println(str12[i]);  			//aaa	bbb		ccc		ddd
		}
	}
}

static关键字

static修饰成员方法,就成了静态方法。静态方法不属于对象,属于类。 直接 类.方法
无论是成员变量还是成员方法,推荐直接 类.xxx调用
静态不能直接访问非静态,在内存中先有静态后有非静态。
静态方法不能使用this
静态变量和类有关 和 对象无关

静态代码块

当第一次用到本类时 静态代码块执行唯一的一次

public class 类名称{
		static {
		静态代码块内容;
	}
}

java.util.Arrays方法

与数组相关的工具类,提供了大量静态方法,实现数组的功能

import java.util.Arrays;

public class Day5_3 {

	public static void main(String[] args) {
		//Arrays.toString(数组)    将任何数组变为字符串
		
		int[] i= {1,2,3,4,5};
		String array=Arrays.toString(i);
		System.out.println(array);		//[1, 2, 3, 4, 5]

		//Arrays.sort(数组) 从小到大排序,字符串升序,自定义类要有接口
		int[] a= {1,5,9,8,7,4,6,3,1,2,5};
		Arrays.parallelSort(a);
		System.out.println(Arrays.toString(a)); 	//[1, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9]
		
	}

}

Math 类

import java.util.*;
public class Day5_4 {

	public static void main(String[] args) {
		//绝对值
		double a=-45.6;
		double aI=Math.abs(a);
		System.out.println(aI);				//45.6

		//向上取整
		System.out.println(Math.ceil(3.9));		//4.0
		System.out.println(Math.ceil(3.1));		//4.0
		System.out.println(Math.ceil(3.0));		//3.0
	
		//向下取整
		System.out.println(Math.floor(3.9));	//3.0
		System.out.println(Math.floor(3.1));	//3.0
		System.out.println(Math.floor(3.0));	//3.0
		
		//四舍五入
		System.out.println(Math.round(3.9));	//4
		System.out.println(Math.round(3.1));	//3
		System.out.println(Math.round(3.0));	//3
	
	}

}

你可能感兴趣的:(JAVA,java)