题目一
1、编程实现:从键盘上输入10个整数,并按照从小到大的顺序输出。
代码:
方法一:
import java.util.Arrays;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
int[] list = new int[10];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i <list.length ; i++) {
list[i]=scanner.nextInt();
}
Arrays.sort(list);
for (int x:list
) {
System.out.print(x+" ");
}
}
}
运行截图:
方法二:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class mySort {
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
Scanner scanner = new Scanner(System.in);
System.out.println("请输入10个整数");
for (int i = 0; i < 10; i++) {
arrayList.add(scanner.nextInt());
}
Collections.sort(arrayList);
System.out.println("排序结果为:");
for (Integer arr : arrayList
) {
System.out.print(arr + " ");
}
}
}
运行截图:
题目二
2、编程实现:从键盘上输入一个整数,并按这个数的倒叙输出。如从键盘上输入:4278,则输出:8724,从键盘上输入:12080,则输出8021。
代码:
方法一:
import java.util.Scanner;
public class Reverse {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
int rev = 0;
while (x > 0) {
rev = rev * 10 + x % 10;
x /= 10;
}
System.out.println(rev);
}
}
方法二:
import java.util.Scanner;
public class reverse {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next().replaceAll("0+$", "");
int x = Integer.parseInt(str);
while (x > 0) {
System.out.print(x % 10);
x /= 10;
}
}
}
运行截图:
题目三
3、创建一个名为TestArray的类,在main方法中创建一个int类型的一维数组,数组的长度由键盘得到,数组中的元素也是由键盘得到,最后输出此数数组。
import java.util.Scanner;
public class TestArray {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数组的长度");
int[] list = new int[scanner.nextInt()];
for (int i = 0; i < list.length; i++) {
System.out.println("请输入第" + (i + 1) + "个元素");
list[i] = scanner.nextInt();
}
System.out.print("输出结果为:");
for (int x : list
) {
System.out.print(x + " ");
}
}
}
运行截图:
题目四
4、创建一个名为TestMultiArray的类,用于分步创建二维数组,在main方法中创建一个int类型的二维数组,数组的行数由键盘得到,每行的列数也由键盘得到(每行可以有不同的列),每个元素也从键盘输入得到。
import java.util.Scanner;
public class TestMultiArray {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入二维数组的行数");
int row = scanner.nextInt();
int[][] multiArray = new int[row][];
for (int i = 0; i <multiArray.length ; i++) {
System.out.println("请输入二维数组第"+(i+1)+"行元素的个数");
int number = scanner.nextInt();
multiArray[i] = new int[number];
}
for (int i = 0; i < multiArray.length ; i++) {
System.out.println("请输入第"+(i+1)+"行元素");
for (int j= 0; j <multiArray[i].length ;j ++) {
multiArray[i][j] = scanner.nextInt();
}
}
System.out.println("二维数组为:");
for (int i = 0; i < multiArray.length ; i++) {
for (int j= 0; j <multiArray[i].length ;j ++) {
System.out.print(multiArray[i][j]+" ");
}
System.out.println();
}
}
}
运行截图:
总结:
问题:
1、排序最先想到的是用for循环进行遍历排序,但是这样过于繁琐,直接用Arrays中的sort方法即可对数组中的元素进行排序,简化了操作。
2、反转数字最开始我没有考虑0在末尾的情况,直接用%来做,达不到理想的效果,输出结果中0还是会输出,最后采用用rev = rev*10 + x%10,解决了问题。
3、二维数组的动态创建,由于还未转变c的思想,而Java中的数组元素的行和列都可以手动指定,并且每一行的列数可以不一样,查阅课本后解决了二维数组动态创建的问题。
总结:
1、 使用别人造好的轮子效率更高。
2、 对面向对象语言有了初步的了解,如Scanner对象的创建。
3、 转变之前的思想,Java是面向对象的语言,在写代码时要以面向对象的思想去考虑问题。
4、 二维数组的动态创建,每行的列数可以不同。