通过几个小程式来快速学习 Java 基本语法 | Java
发布于: 刚刚
前置知识
标识符:Java 语言使用的是 Unicode 字符集,使用 2 个字节表示一个符号,总共可描述 65536 个不同的符号,基本上可以描述世界上所有国家的文字。因此,除可以使用通常的方式来命名标识符之外,也可以使用中文、日文、朝鲜文作为标识符。但是,对于程序员来说:最好还是使用遵从一般规范。
在 Java 语言中规定了各基本类型的数据所占的固定字节数。分别如下:
与 C 语言不同的是,Java 语言中增加了 boolean 类型,即逻辑类型(布尔类型),其变量只有 2 个常量值,绝对不能与 C 中的非 0 就是真、0 就是假混淆。
运算规则、选择结构、循环结构与 C 语言基本一致,不再赘述了。
数组属于特殊的类,每个数组都是一个对象。对象都是指针。
一维数组的声明、定义、赋值(创建数组),访问(包括使用 foreach 方式,Java 中新增加的遍历方式),数组的元素个数
二维数组:C 语言里面的的二维数组存在栈空间中。
Java 里面的二维数组存在堆空间中。
C 语言二维数组的第二维长度必须和第一维长度一致,而 Java 语言中的二维数组第二维不必与第一维长度一致。
基础题
第一题参考代码
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]+"次。");
}
}
}
}
复制代码
划线
评论
复制
发布于: 刚刚阅读数: 5
版权声明: 本文为 InfoQ 作者【Regan Yue】的原创文章。
原文链接:【http://xie.infoq.cn/article/86c993787db7767f2ce10656f】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
Regan Yue
关注
还未添加个人签名 2020.08.12 加入
对Go、Python、网络安全、区块链感兴趣. · 华为云云享专家 · 掘金资讯创作者
评论