通过几个小程式来快速了解Java | Java

前置知识

标识符:Java语言使用的是Unicode字符集,使用2个字节表示一个符号,总共可描述65536个不同的符号,基本上可以描述世界上所有国家的文字。因此,除可以使用通常的方式来命名标识符之外,也可以使用中文、日文、朝鲜文作为标识符。但是,对于程序员来说:最好还是使用遵从一般规范。

在Java语言中规定了各基本类型的数据所占的固定字节数。分别如下:

Boolean 1个字节
byte 1个字节
short 2个字节
char 2个字节
int 4个字节
long 8个字节
float 4个字节
double 8个字节

与C语言不同的是,Java语言中增加了boolean类型,即逻辑类型(布尔类型),其变量只有2个常量值,绝对不能与C中的非0就是真、0就是假混淆。

运算规则、选择结构、循环结构与C语言基本一致,不再赘述了。

数组属于特殊的类,每个数组都是一个对象。对象都是指针。

一维数组的声明、定义、赋值(创建数组),访问(包括使用foreach方式,Java中新增加的遍历方式),数组的元素个数

二维数组:C语言里面的的二维数组存在栈空间中。

Java里面的二维数组存在堆空间中。

C语言二维数组的第二维长度必须和第一维长度一致,而Java语言中的二维数组第二维不必与第一维长度一致。

基础题

image.png

第一题参考代码

import java.util.Scanner;

public class 实验2_1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String num = scanner.next();
        String[] str = num.split("\\.");
        System.out.println("整数部分"+str[0]);
        System.out.println("小数部分0."+str[1]);
    }
}

第二题参考代码

import java.util.Scanner;

public class 实验2_2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[] a = new int[10];
        for(int i=0;i<10;i++){
            a[i] = scanner.nextInt();
        }
        for(int i=0;i<10-1;i++){
            for(int j=0;j<10-i-1;j++){
                if(a[j]>a[j+1]){
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }
        for(int k=0;k<10;k++){
            System.out.print(a[k]+" ");
        }

        System.out.println("最大值是"+a[9]);
        System.out.println("最小值是"+a[0]);
    }
}

第三题参考代码

import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class 实验2_3 {
    public static void main(String[] args) throws Exception {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请按顺序输入年月日");
        String year = scanner.next();
        String month = scanner.next();
        String day = scanner.next();
        Date date = new Date();
        String dateString = year+"-"+month+"-"+day;
        System.out.println(dateString);
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        date = dateFormat.parse(dateString);

        String[] weeks = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        int week_index = cal.get(Calendar.DAY_OF_WEEK) - 1;
        if(week_index<0){
            week_index = 0;
        }
        System.out.println("这天是"+weeks[week_index]);

        int yearInt = Integer.parseInt(year);
        int monthInt = Integer.parseInt(month);
        int dayInt = Integer.parseInt(day);

        LocalDateTime time = LocalDateTime.of(yearInt,monthInt, dayInt, 0 ,0 ,0);
        int dayOfYear = time.getDayOfYear();
        System.out.printf("这天是%d年的第%d天",yearInt,dayOfYear);
    }
}

第四题参考代码

import java.util.Scanner;

/*
* 判断一个整数是否是素数*/
public class 实验2_4 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        if(prime(num)){
            System.out.println(num+"是素数");
        }else {
            System.out.println(num+"不是素数");
        }
    }
    static boolean prime(int num){
        if(num<=1) return false;
        for(int i=2;i<=Math.sqrt(num);i++){
            if(num%i==0){
                return false;
            }
        }
        return true;
    }
}


第五题参考代码

/*
*  输入一个数,求它的所有因子
* 一个数,如果存在可以被它整除的数且这些数不包括它本身,则这些书都是该数的因子。
* 规定0没有因子,1的因子是1,其他的比如4的因子有“1”、“2” */
import java.util.Scanner;

public class 实验2_5 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();

        System.out.print(1+" ");
        for(int i = 2;i<=Math.sqrt(num);i++){
            if(num%i==0){
                System.out.println(i+" ");
                System.out.println(num/i+" ");
            }
        }
    }
}

第六题参考代码

import java.util.Scanner;

public class 实验2_6_1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        System.out.println(num+"的二进制是"+Integer.toBinaryString(num));
        System.out.println(num+"的八进制是"+Integer.toOctalString(num));
        System.out.println(num+"的十六进制是"+Integer.toHexString(num));
    }
}
/*
* 16进制转10进制*/
import java.util.Scanner;

public class 实验2_6_2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String Hexnum = scanner.next();
        int num = Integer.parseInt(Hexnum,16);
        System.out.println(num);
    }
}

第七题参考代码

import java.util.Scanner;

public class 实验2_7 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();

        int[] cnt = new int[54];

        for(int i=0;i<str.length();i++){
            char ch = str.charAt(i);
            if((ch>=65&&ch<=90 )||( ch>=97&&ch<=122)){
                int index = ch-65;
                cnt[index]+=1;
            }

        }
        for(int j=0;j<cnt.length;j++){
            if(cnt[j]!=0){
                System.out.println((char)(j+65)+"出现"+cnt[j]+"次。");
            }
        }
    }
}

(完)