做任务挣钱的网站聚,员工之家app官网下载地址,湘潭平台公司,html5编辑器java的常用引用类、数组、String类 1. 常用引用类
1.1 Scanner 一个简单的文本扫描器类。 使用#xff1a; //创建扫描器对象 Scanner sc new Scanner(System.in); //接收用户输入字符串类型的数据 String str sc.next(); //接收用户输入整数类型的数据 … java的常用引用类、数组、String类 1. 常用引用类
1.1 Scanner 一个简单的文本扫描器类。 使用 //创建扫描器对象 Scanner sc new Scanner(System.in); //接收用户输入字符串类型的数据 String str sc.next(); //接收用户输入整数类型的数据 int num sc.nextInt(); //接收用户输入小数类型的数据 double d sc.nextDouble();
Scanner sc new Scanner(System.in);
System.out.print(请输入姓名);
//输入姓名
String name sc.next();
//输入年龄
System.out.println(请输入年龄 :);
int age sc.nextInt();
//输入工资
System.out.print(请输入工资);
double salary sc.nextDouble();
//输出
System.out.println(姓名name年龄age,工资:salary);
1.2 Random 该类的实例用于生成伪随机数的流。
使用 //创建Random对象 Random rand new Random(); //0~9 任意一个整数 [0,10) int n rand.nextInt(10); //0.0-1.0任意一个double数[0.0,1.0) double d rand.nextDouble();
Random rand new Random();
//生成0~9 任意一个
int n rand.nextInt(10);
//生成0.0~1.0 任意一个double数
double d rand.nextDouble();
System.out.println(n);
System.out.println(d);
1.3 Math Math类包含执行基本数字运算的方法如基本指数对数平方根和三角函数。 常用值与函数
函数描述Math.random返回01之间的一个随机数Math.max求两数中最大 Math.min求两数中最小 Math.sqrt求开方 Math.ceil得到不小于某数的最大整数 Math.floor得到不大于某数的最大整数 Math.rint 求距离某数最近的整数可能比某数大也可能比它小Math.round同上返回int型或者long型上一个函数返回double型 Math.exp求e的任意次方 Math.log10以10为底的对数 Math.log自然对数Math.pow求某数的任意次方, 抛出ArithmeticException处理溢出异常Math.PI记录的圆周率Math.E记录e的常量 Math.abs求绝对值 Math.sin正弦函数Math.asin反正弦函数 Math.cos余弦函数Math.tan正切函数Math.toDegrees弧度转化为角度Math.toRadians角度转化为弧度 Math.IEEEremainder求余 使用 //double类型的数据[0.0,1.0) Math.random();
double d Math.random();
//生成0-1的整数
double random Math.random();
System.out.println(random);
//生成1-10的整数
int n (int)(Math.random()*10)1;
System.out.println(n); 2.0 数组
数组概念:可以存储一组相同类型的数据。
2.1 一维数组 语法1类型[] 数组名; 2类型 数组名[]; 静态初始化1类型[] 数组名 new 类型[]{值1,值2…} 2类型[] 数组名 数组名 {值1,值2…} 动态初始化类型[] 数组名 new 类型[长度]; 必须要添加长度,一旦分配长度该数组的空间是不可改变的赋值可以通过下标给数组赋值元 素的个数:length可以获取数组中元素的个数 注意事项1数组中下标是从0开始 2空指针异常java.lang.NullPointerException 3索引越界异常java.lang.ArrayIndexOutOfBoundsException 数组的操作1求最大值
int array[] new int[] {11,55,22,99,88};
//最大值
int max array[0];
//遍历数组
for(int i1;iarray.length;i) {if(maxarray[i]) {maxarray[i];}
}
System.out.println(最大值 max); 2最小值
int array[] new int[] {11,55,22,99,88};
//最小值
int min array[0];
//遍历数组
for(int i1;iarray.length;i) {if(min array[i]) {min array[i];}
}
System.out.println(最小值 min ); 3求和
int array[] new int[] {11,55,22,99,88};
//数组中的和
int sum 0;
//遍历数组
for(int i0;iarray.length;i) {sum array[i];
}
System.out.println(数组的和 sum ); 4平均值
int array[] new int[] {11,55,22,99,88};
//数组中的和
double sum 0;
//遍历数组
for(int i0;iarray.length;i) {sum array[i];
}
//平均值
double avg sum/array.length;
System.out.println(数组的平均值 avg ); 5复制
//旧数组
int[] array new int[]{11.55.88.33.66.22}
//新数组
int[] newArray new int[array.length];
//遍历旧数组
for(int i0;iarray.length;i) {newArray[i]array [i];
}6反转
int array[] new int[] {11,55,22,99,88};
System.out.println(反转前);
for(int i0;iarray.length;i) {System.out.print(array[i] );
}
//遍历数组
for(int i0;iarray.length/2;i) {//交换位置array[array.length -1 -i] array[i]^array[array.length -1 -i];array[i] array[array.length -1 -i]^array[i];array[array.length -1 -i] array[array.length -1 -i]^array[i];
}
System.out.println(反转后);
for(int i0;iarray.length;i) {System.out.print(array[i] );
} 7冒泡排序
int array[] new int[] {11,55,22,99,88};
//遍历数组
for(int i0;iarray.length -1;i) {for(int j 0;j array.length - 1;j) {if(array[j] array[j1]){array[j1] array[j1]^array[j];array[j] array[j1]^array[j];array[j1] array[j1]^array[j];}}
}
System.out.print(按从小到大顺序 );
for(int i0;iarray.length;i) {System.out.print(array[i] );
} 8选择排序
int array[] new int[] {11,55,22,99,88};
//遍历数组
for(int i0;iarray.length -1;i) {int z i;for(int j i1;j array.length;j) {if(array[z] array[j]){z j;}}if(z ! i) {array[z] array[z]^array[i];array[i] array[z]^array[i];array[i] array[z]^array[i];}
}
System.out.print(按从小到大顺序 );
for(int i0;iarray.length;i) {System.out.print(array[i] );
}
2.2 二维数组 语法1类型[][] 数组名; 2类型 数组名[][]; 静态初始化1类型[][] 数组名 new 类型[][]{{值1,值2}{值3,值4}…} 2类型[][] 数组名 数组名 {{值1,值2}{值3,值4}…} 动态初始化类型[][] 数组名 new 类型[长度1][长度2]; 注意二维数组可以看作行或列由于数组的下标起始值为 0因此行和列的下标需要减 1。 二维数组的操作1获取单个元素
int[][] array {{1,2},{3,4,5},{6,7,8,9}};
//打印数组的行数
System.out.println(arr.length);
//打印数组第2行的拥有的元素即列数
System.out.println(arr[1]);//打印数组第1行第2列的元素
System.out.println(arr[0][1]); 2获取整行元素
int[][] array {{1,2},{3,4,5},{6,7,8,9}};
Scanner scannew Scanner(System.in);
System.out.println(当前数组有array.length行请输入您要查看的行数);
int num scan.nextInt();
for(int i0;jarray[num-1].length;i) {System.out.println(第num行的第[i]个元素的值是array[num-1][i]);
} 3获取整列元素
int[][] array {{1,2},{3,4,5},{6,7,8,9}};
Scanner scannew Scanner(System.in);
System.out.println(请输入您要获取的列);
int numscan.nextInt();
for(int i0;iarray.length;i) {System.out.println(第 (i1) 行的第[num]个元素的值是array[i][num]);
} 4遍历
int[][] array {{1,2},{3,4,5},{6,7,8,9}};
//遍历二维数组
for(int i0;iarr.length;i) {for(int j0;jarr[i].length;j) {System.out.print(arr[i][j] );}
} 3 String
String类代表字符串, 字符串不变,它们的值在创建后不能被更改
StringBuffer 和 StringBuilder 类的对象能够被多次的修改并且不产生新的未使用对象。tringBuilder 相较于 StringBuffer 有速度优势所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下则必须使用 StringBuffer 类。
String s1 abc;
s1bcd; //重新开辟空间
//synchronized
StringBuffer buf new StringBuffer(abc);
buf.append(bcd);
//效率高
StringBuilder str new StringBuilder(abc);
str.append(bcd); //不会开辟新空间
System.out.println(s1); //abcbcd
System.out.println(str.toString());
//StringBuilderStringBufferString 效率高到底
字符串在内存中是以字符的方式存储的。
String str abc;相当于 char data[] {a, b, c};String str new String(data);
字符串的比较见如下代码
public static void main(String[] args) {String s1 abc;String s2 abc;String s3 new String(abc);// 地址//equals比较字符串比较每个字符System.out.println(s1s2); //trueSystem.out.println(s1s3); //falseSystem.out.println(s1.equals(s3)); //trueString s4 abc; //编译时确定String s5 ab new String(c); //运行时确定String s6 ab;String s7 c;String s8 s6s7;System.out.println();System.out.println(s4s1:(s4s1)); //trueSystem.out.println(s5s1:(s5s1)); //falseSystem.out.println(s8s1:(s8s1)); //false//String s9 s8.intern(); //在常量池地址System.out.println(s9s1:(s8.intern()s1)); //trueSystem.out.println(s8.equals(s5)); //true
}