java自定义笔记
字符连接符的特性
表示 : + ,String
实例
public class Hello{ public static void main(String[] args){ int a=10; int b=20; System.out.println(""+a+b); //""在前面会自动将a+b转换成string类型 System.out.println(a+b+""); //""在后面则不会 } }
转义字符
三目运算符
表示 : ? :
public class Hello{ public static void main(String[] args){ int a=10; String type= a < 20 ? "就这" : "呵呵"; System.out.println(""+type); } }
包机制
JavaDoc 帮助文档
输入Scanner对象
基本语法:
Scanner s= new Scanner(System.in);
package experiment; import java.util.Scanner; public class scanner { public static void main(String[] args){ //创建一个扫瞄器对象,用于接收键盘数据 Scanner scanner=new Scanner(System.in); System.out.println("使用next方式接收:"); String str=scanner.next(); //以空格/回车结束 String str=scanner.nextLine(); //以回车结束 System.out.println("输出内容为:"+str); //凡是属于IO流的类,如果不关闭会一直占用资源, scanner.close(); } }
实例1
package experiment; import java.util.Scanner; public class scanner { public static void main(String[] args){ Scanner scanner =new Scanner(System.in); int a=1; float b; b=0.9f; System.out.println("输入整数:"); if(scanner.hasNextInt()){ a=scanner.nextInt(); System.out.println("接收为"+a); }else{ System.out.println("错误"); } if(scanner.hasNextFloat()){ b=scanner.nextFloat(); System.out.println("大是大非:"+b); }else{ System.out.println("错误"); } scanner.close(); } }
运行结果
实例2
package experiment; import java.util.Scanner; public class sum { public static void main(String[] args){ Scanner scanner = new Scanner(System.in); double sum=0.0d; int s=0; System.out.println("请输入数字:"); while(scanner.hasNextDouble()){ double a=scanner.nextDouble(); sum+=a; s++; System.out.println("你输入第"+s+"个数据,当前的和是:"+sum); } System.out.println(s+"个数的和为:"+sum); System.out.println(s+"个数的平均值是:"+(sum/s)); scanner.close(); } }
运行结果
实例3:equals判断字符串是否相同
package experiment; import java.util.Scanner; public class Hello{ public static void main(String[] args){ Scanner scanner=new Scanner(System.in); int a=10; String type= a < 20 ? "就这" : "呵呵"; System.out.println("请输入:"); String str=scanner.nextLine(); if(str.equals("Hello")){ //equals:判断字符串是否相同 System.out.println(str+"没错"); }else{ System.out.println(""+type); } } }
运行结果
switch...case...default结构
for循环打印九九乘法表
package experiment; //import java.util.Scanner; public class Haskell {//九九乘法表 public static void main(String[] args){ //Scanner scanner =new Scanner(System.in); for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(i+"*"+j+"="+(i*j)+"\t"); } System.out.print("\n"); //或者System.out.println();都表示换行 } } }
数组实践
package experiment; import java.util.Arrays; public class Array {//数组实践 public static void main(String[] args){ int[] array={10,20,30,50,60}; for(int i=0;i<5;i++) System.out.println(array[i]); System.out.println("==================="); for(int i:array) System.out.println(i); System.out.println("==================="); int[] arrays=reverse(array); for(int i:arrays) System.out.println(i); System.out.println("==================="); printArray(array); System.out.println("***************"); int[] a={12,21,223,5454,6666}; Arrays.sort(a);//数组排序 System.out.println(Arrays.toString(a));//数组打印 Arrays.fill(a,2,4,0);//数组填充 System.out.println(Arrays.toString(a)); } public static int[] reverse(int[] array){//反转数组 int[] result=new int[array.length]; for(int i=0,j=array.length-1;i<array.length;i++,j--) { result[j]=array[i]; } return result;//返回数组类型 } public static void printArray(int[] array)//打印数组 { for(int i=0;i<array.length;i++) { System.out.println(array[i]);//数组入参 } } }
打印三角形
package experiment; import java.util.Scanner; public class Triangle {//打印三角形 public static void main(String[] args){ Scanner scanner =new Scanner(System.in); System.out.println("请输入三角形的层数:"); int n=scanner.nextInt(); for(int i=1;i<=n;i++){ for(int j=i;j<n;j++){ System.out.print(" "); } for(int k=1;k<2*i;k++){ System.out.print("*"); } System.out.println(); } } }
运行结果
方法调用(函数)
package experiment; public class Method {//方法 public static void main(String[] args){ int sum=add(1,5); System.out.println(sum); System.out.println("-------------"); double s=add(3,4);//返回值不同,会自动选择哪个方法 System.out.println(s); } public static int add(int a,int b){ return a+b; } public static double add(double a,double b){//方法的重载 return a+b; } }
命令行运行
可变参数
实例
函数递归
package experiment; import java.util.Scanner; public class Recursion {//n的阶乘 public static void main(String[] args){ Scanner scanner=new Scanner(System.in); int x=scanner.nextInt(); System.out.println(f(x)); } public static int f(int n){ if(n==1) return 1; else{ return n*f(n-1); } } }
稀疏数组
package experiment; public class SparseArray {//稀疏数组 public static void main(String[] args){ //1.创建一个二维数组11*11 0:没有旗子, 1:黑旗 2:白旗 int[][] array1=new int[11][11]; array1[1][2]=1; array1[2][3]=2; //输出原始数组 System.out.println("输出原始数组"); for(int[] ints:array1){ for(int anInt:ints){ System.out.print(anInt+"\t"); } System.out.println(); } //转化为稀疏数组保存 //获取有效值个数 int sum=0; for(int i=0;i<11;i++) { for(int j=0;j<11;j++) { if(array1[i][j]!=0) sum++; } } System.out.println("有效值个数:"+sum); //2.创建一个稀疏数组的数组 int[][] array2=new int[sum+1][3]; array2[0][0]=11; array2[0][1]=11; array2[0][2]=sum; //遍历二维数组,将非零的值,存放在稀疏数组中 int count=0; for(int i=0;i<array1.length;i++) { for(int j=0;j<array1[i].length;j++) { if(array1[i][j]!=0){ count++; array2[count][0]=i; array2[count][1]=j; array2[count][2]=array1[i][j]; } } } //输出稀疏数组 System.out.println("稀疏数组"); for(int i=0;i<array2.length;i++) { System.out.println(array2[i][0]+ "\t"+array2[i][1]+"\t" +array2[i][2]+"\t"); } System.out.println("********************************"); System.out.println("还原"); //1.读取稀疏数组 int[][] array3=new int[array2[0][0]][array2[0][1]]; //2.给其中的元素还原它的值 for(int i=1;i<array2.length;i++) { array3[array2[i][0]][array2[i][1]]=array2[i][2]; } //3.打印 System.out.println("输出还原的数组"); for(int[] ints:array1){ for(int anInt:ints){ System.out.print(anInt+"\t"); } System.out.println(); } } }
运行结果