yink's studio

yink's world
Stay hungry, stay foolish.
  1. 首页
  2. 语言学习
  3. 正文

《java核心技术卷I》示例代码

2022年2月11日 172点热度 0人点赞 0条评论

输入与输出

常见输入输出的一个示例:

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]]

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: java
最后更新:2022年2月11日

yink

这个人很懒,什么都没留下

点赞
下一篇 >

文章评论

取消回复

COPYRIGHT © 2021 101.34.164.187. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS