输入与输出
常见输入输出的一个示例:
import static java.lang.Math.*; import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.Scanner; public class hello { public static void main(String[] args) throws IOException { Scanner in = new Scanner(System.in); //创建一个读取系统输入的Scanner用于操作 System.out.println("What's your name?"); String name = in.nextLine(); //in接收系统输入,nextLine()接收一行字符串 System.out.println("What's your nickname?(one word)"); String nickname = in.next(); //next()接收一个单词()空格为分隔符 System.out.println("What's your age?"); int age = in.nextInt(); //nextInt()接收一个整数 //String message=String.format("Hello your name is %s,\nyour nickname is %s,\nnext year you will be %d\n",name,nickname,(age+1)); //format方法用于创建一个格式化字符串 //System.out.println(message); System.out.printf("Hello your name is %s,\nyour nickname is %s,\nnext year you will be %d\n", name, nickname, (age + 1)); //printf函数格式化输出 } }
结合文件读写:(依次读取文件中的int,double,word)
import static java.lang.Math.*; import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.Scanner; public class hello { public static void main(String[] args) throws IOException { Scanner in = new Scanner(Path.of("1.txt"), StandardCharsets.UTF_8); //第一个参数是Path while(in.hasNextInt()) //按照顺序依次判定 { System.out.println("1:"); System.out.println(in.nextInt()); } while(in.hasNextDouble()) { System.out.println("2:"); System.out.println(in.nextDouble()); } while(in.hasNext()) { System.out.println("3:"); System.out.println(in.next()); } } }
import static java.lang.Math.*; import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.Scanner; public class hello { public static void main(String[] args) throws IOException { PrintWriter out=new PrintWriter("1.txt",StandardCharsets.UTF_8); out.println("写入"); out.printf("%d",1); out.close(); //关闭数据流,以防数据丢失 } }
带标签的break
import static java.lang.Math.*; import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.Scanner; public class hello { public static void main(String[] args) throws IOException { Scanner in = new Scanner(System.in); int n=0; ReadData: for(int i=10;i>0;i--) { n=in.nextInt(); if(n<0) { break ReadData;//到达ReadData标签的末尾 } } if(n<0) { System.out.println("n<0"); } } }
大数
import static java.lang.Math.*; import java.io.*; import java.math.BigInteger; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.Scanner; public class hello { public static void main(String[] args) throws IOException { BigInteger a= BigInteger.valueOf(1); //valueOf将普通的数值转换为大数 BigInteger b=new BigInteger("999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999");//字符串构造器 for(int i=1;i<=100;i++) { a=a.multiply(BigInteger.valueOf(i));//multiply函数用于乘法 } b=b.add(a);//add函数用于加法 //不能直接用+和*运算符 System.out.println(a); System.out.println(b); } }
数组
基本初始化和打印
import static java.lang.Math.*; import java.io.*; import java.math.BigInteger; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.Arrays; import java.util.Scanner; public class hello { public static void main(String[] args) throws IOException { int[] a=new int[100];//管理者和对象 int[] b={2,3,5,7,11,13,};//赋初值 int[] c={2,3,5,7,11,13,};//赋初值 b=new int[] {4,5,};//创建匿名数组写法,并且赋给变量 int[] d=new int[0]; int[] e={}; //d,e等价写法,允许出现长度为0的数组 System.out.println(Arrays.equals(d, e)); for(int element:b) //for each结构,更简洁并且不用操心下标 { System.out.println(element); } System.out.println(Arrays.toString(c)); //打印c的值,显示[2, 3, 5, 7, 11, 13] } }
数组拷贝
import static java.lang.Math.*; import java.io.*; import java.math.BigInteger; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.Arrays; import java.util.Scanner; public class hello { public static void main(String[] args) throws IOException { int[] num={2,3,5,7,}; int[] num2=Arrays.copyOf(num,num.length); int[] num3=Arrays.copyOf(num,num.length/2); int[] num4=Arrays.copyOf(num,num.length*2); //Arrays.copyOf重新创建了一个新的数组对象,前一参数是一组数组值,后一参数是新数组长度 //若新数组长度多于原数组,则多余空间值均为0;若少于则只复制一部分值 int[] num5=num; //num5与num管理同一个数组 System.out.println(Arrays.toString(num)); num5[0]=999; System.out.println(Arrays.toString(num2)); System.out.println(Arrays.toString(num3)); System.out.println(Arrays.toString(num4)); System.out.println(Arrays.toString(num5)); Arrays.sort(num);//数组排序方法,使用快排实现 System.out.println(Arrays.toString(num)); } }
运行结果:
[2, 3, 5, 7]
[2, 3, 5, 7]
[2, 3]
[2, 3, 5, 7, 0, 0, 0, 0]
[999, 3, 5, 7]
[3, 5, 7, 999]
命令行参数:
import jdk.jshell.JShell; import static java.lang.Math.*; import java.io.*; import java.math.BigInteger; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.Arrays; import java.util.Scanner; public class hello { public static void main(String[] args) throws IOException { //args数组是命令行参数构成的字符串数组 if(args.length==0||args[0].equals("-h")) { System.out.print("Hello,"); //print打印不会额外打印空行,println会 } else if(args[0].equals("-g")) { System.out.print("Goodbye,"); } //print command-line arguments for(int i=1;i<args.length;i++) { System.out.print(" "+args[i]); } System.out.print("!"); } }
运行结果:
不规则数组:
import static java.lang.Math.*; import java.io.*; import java.math.BigInteger; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.Arrays; import java.util.Scanner; public class hello { public static void main(String[] args) throws IOException { int[][] a = { {1, 2,}, {5, 8, 9, 10}, {6, 7, 4,}, };//多维数组初始化,可以是不规则数组 //本质:“数组的数组” for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { System.out.print(a[i][j] + " "); } System.out.print("\n"); } System.out.print("\n"); //另一种写法 for (int[] row : a) { for (int value : row) { System.out.print(value + " "); } System.out.print("\n"); } System.out.print("\n"); System.out.println(Arrays.deepToString(a)); //Arrays.toString()方法在多维数组的扩展 int[] temp=a[0]; a[0]=a[2]; a[2]=temp; //可以单独访问数组的某一行,所以两行交换 System.out.println(Arrays.deepToString(a)); } }
运行结果:
1 2
5 8 9 10
6 7 4
1 2
5 8 9 10
6 7 4
[[1, 2], [5, 8, 9, 10], [6, 7, 4]]
[[6, 7, 4], [5, 8, 9, 10], [1, 2]]
文章评论