Array工具类
数组工具类
java.util.Arrays是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作
public static String toString(数组):将参数数组变成字符串(按照默认格式:[元素1,元素02元素3…])
public static void sort(数组):按照从小到大对数组元素进项排序
备注:
- 如果值数值,sort默认按照升序从小到大
- 如果是字母,sort默认按照字母升序
- 如果是自定义的类型,那么自定义的类需要有Comparable或者Compatator接口的支持(以后学习)
package Demo02;
import java.util.Arrays;
public class Demo14 {
public static void main(String[] args) {
int[] intArray = {10,20,30};
//将int[]数组按照默认格式变成字符串
String intStr = Arrays.toString(intArray);
System.out.println(intStr); //[10, 20, 30]
int[] array1 = {3,5,9,6,1,2,};
Arrays.sort(array1);
System.out.println(Arrays.toString(array1)); //[1, 2, 3, 5, 6, 9]
String[] array2 = {"bbb","aaa","ccc"};
Arrays.sort(array2);
System.out.println(Arrays.toString(array2)); //[aaa, bbb, ccc]
}
}
练习
请使用Arrays相关的API,将一个随机字符串中的所有字符程序排列,并倒序打印
package Demo02;
import java.util.Arrays;
public class Demo15 {
public static void main(String[] args) {
String str = "futtyiuhoi46871";
//如何进行升序排列
//必须是一个数组,才能用Arrays.sort方法
//String --> 数组,用toCharArray
char[] chars = str.toCharArray();
Arrays.sort(chars); //对字符数组进行升序排列
//需要倒序遍历
for (int i = chars.length - 1; i >= 0; i--) {
System.out.println(chars[i]);
}
}
}
math类
java.util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作
public static double abs(double num):获取绝对值
public static double ceil(double num):向上取整
pubilc static double floor(double num):向下取整
public static long round(double num):四舍五入
Math.PI代表近似的圆周率常量(double).
package Demo02;
public class Demo16 {
public static void main(String[] args) {
//获取绝对值
System.out.println(Math.abs(3.14)); //3.14
System.out.println(Math.abs(0)); //0
System.out.println(Math.abs(-2.5)); //2.5
//向上取整
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.round(3.4)); //3 不带小数点
System.out.println(Math.round(10.5)); //11
}
}
练习
题目:
计算在-10.8到5.9之间,绝对值大于6或者小于2.1的整数有多少个?
分析:
-
确定了范围,用for循环
-
起点位置-10.8应该转换为-10,两种办法:
2.1 可以使用Math.celi方法,向上(向正方向)取整
2.2强制类型转换成int,自动舍弃所有小数位
-
每一个数字都是整数,所以步进表达式应该是num++,这样每次都是+1的
-
如何拿到绝对值:Math.abs方法
-
一旦发现了一个数字,需要让计数器++进行统计
备注:如果使用Math.ceil方法,-10.8可以变成-10.0,注意double也是可以进行++的
package Demo02;
public class Demo17 {
public static void main(String[] args) {
int count = 0; //符合要求的数量
double min = -10.8;
double max = 5.9;
//这样处理,变量i就是区间之内的所有整数
for (int i = (int) min; i < max; i++) {
int abs = Math.abs(i); //绝对值
if (abs > 6 || abs < 2.1) {
System.out.println(i);
count++;
}
}
System.out.println("总共有:" + count);
}
}