常用类
Math
@Test
public void randomHeroTesting() {
//计算平⽅根
System.out.println(Math.sqrt(16));
//计算⽴⽅根
System.out.println(Math.cbrt(8));
//两个数的最⼤,⽀持int, long, float,double
System.out.println(Math.max(2.9,4.5));
System.out.println(Math.min(2.9,4.5));
//ceil向上取整,更⼤的值⽅向靠拢, 中⽂是天花板
System.out.println(Math.ceil(19.7));
System.out.println(Math.ceil(-20.1));
//floor向下取整,更⼩的值⽅向靠拢,中⽂是地板意思
System.out.println(Math.floor(19.7));
System.out.println(Math.floor(-20.1));
List<String> list = Arrays.asList("Pandarenbrewer",
"Flame Lord",
"Goblin Alchemist",
"Pit Lord",
"Dark Ranger",
"BEASTMASTER",
"Tinker",
"Naga Seawitch");
Random random = new Random();
//该方法生成从0(包括)到n(不包括)之间的随机整数,是一个伪随机数,并不是真正的随机数。
System.out.println(list.get(random.nextInt(8)));
//System.out.println(Math.random()); //⼩于1⼤于0的double类型的数
//产⽣1到10的随机数,int⽅法进⾏转换它会去掉⼩数掉后⾯的数字即只获取整数部分,不是四五⼊
//int random=(int)(Math.random()*10+1);
}
String
创建字符串对象的两种方法
// 始终会在堆中开辟新的内存空间
String str= new String("abc");
//字面量(会引用常量池中已存在的地址)
String str = "abc";
字符串比较内容是否相等
- == 是 ⽐较地址
- equals()内容是否相等需要 ⽤
常用 API
@Test
public void stringTesting() {
String str = "abc";
String str2 = "dfg";
String str3 = "ABC";
String str4 = "a,b,c,d";
String str5 = " a b c d ";
//获取字符串的长度
System.out.println(str.length());//3
//通过下标获取字符
char c = str.charAt(1);
System.out.println(c);//b
//字符串比较
boolean result = str.equals(str2);//false
System.out.println(result);
//字符串比较忽略大小写
boolean result2 = str.equalsIgnoreCase(str3);//true
System.out.println(result2);
//查找字符串出现的位置
int index = str.indexOf("b");//1
System.out.println(index);
//字符串截取(从指定下标开始截取到末尾)
String substring = str.substring(1);//bc
System.out.println(substring);
//字符串截取(指定范围,包括开头不包括结尾)
String substring1 = str.substring(1, 2);//b
System.out.println(substring1);
//字符串拆分 特殊字符注意转义 ("\\.")
String[] split = str4.split(",");
for (String s : split) {
System.out.println(s);// a b c d
}
//字符串替换
String replace = str.replace("c", "x");//abx
System.out.println(replace);
//大写转换
String s = str.toUpperCase();//ABC
System.out.println(s);
//小写转换
String s1 = s.toLowerCase();//abc
System.out.println(s1);
//去除空格
String trim = str5.trim();//a b c d
System.out.println(trim);
//其他类型和字符串互相转换
boolean aBoolean = Boolean.getBoolean("false");
Integer integer = Integer.parseInt("20");
long aLong = Long.parseLong("1024");
float f = Float.parseFloat("3.14159");
double aDouble = Double.parseDouble("1.423123123");
}
System
位于 java.lang 包中,它是系统类,代表程序所在系统,提供了对应的 ⼀些系统属性信息和系 统操作。
//输⼊输出包含三个成员变量,分别是in,out,err
System.out //常⽤调试
System.in //⽤于数据读取,少⽤
System.err //⽤在错误输出,少⽤
//获取系统当前毫秒值
System.currentTimeMillis()
//获取系统环境的属性
System.getProperties()
Properties properties = System.getProperties();
Set<Map.Entry<Object, Object>> entrySet = properties.entrySet();
for (Map.Entry<Object, Object> entry : entrySet) {
System.out.println(entry.getKey() + "=" + entry.getValue());
}
//根据指定key获取系统属性
System.getProperties(key)
System.out.println(System.getProperty("os.name")); //Windows 10
包装数据类型
Java 是 ⼀个 ⾯相对象的编程语 ⾔,但基本类型并不具有对象的性质,为了让基本类型也具有 对象的特征,就出现了包装类型。
集合框架 ⾥ ⾯需要存储对象,不能存储基本数据类型,所以需要存储包装类型。
对照表
基本类型 包装器类型
boolean Boolean
char Character
int Integer
byte Byte
short Short
long Long
float Float
double Double
基本数据类型与包装类型互相转换
@Test
public void wrapperTesting(){
//int => Integer
int i = 0;
Integer integer = new Integer(i);
//Integer => int
Integer integer2 = new Integer(0);
int i1 = integer2.intValue();
//boolean => Boolean
Boolean aBoolean = new Boolean(false);
//Boolean => boolean
boolean booleanValue = aBoolean.booleanValue();
}
基本数据类型和包装数据类型区别
- 基本数据类型不 ⽤ new, 包装类型需要使 ⽤ new 关键字来在堆中分配存储空间。
- 存储 ⽅式及位置不同,基本类型是直接将变量值存储在栈中,包装类型是将对象放在堆中, 然后通过引 ⽤来使 ⽤。
- 初始值不同,基本类型的初始值如 int 为 0,boolean 为 false,包装类型的初始值为 null。
System.in、Scanner
位于 java.util 包下,可以通过 Scanner 类来获取 ⽤户的输 ⼊。
常用 API
//获取输⼊的字符串,以回⻋换⾏符为结束标识
public String nextLine()
//获取输⼊的整数
public int nextInt()
//还有nextShort, nextFloat, nextDouble
用法
//构造函数传⼊输⼊流
public Scanner(InputStream source)
//传⼊键盘输⼊流
Scanner s = new Scanner(System.in);
示例
public class ScannerTesting {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入字符串:");
String input = scanner.nextLine();
if ("886".equalsIgnoreCase(input)) {
System.out.println("再见!");
break;
} else {
System.out.println("您输入的是:"+ input);
}
}
scanner.close();
}
}