实验目的
掌握Java中一维数组的使用;掌握Java中二维数组的使用;掌握Java中向量的使用。掌握String类字符串的使用方法;掌握StringBuffer字符串的使用方法;掌握两种字符串的区别。
实验性质
验证性实验+设计性实验
实验内容
(1)分析调试教材第5、6章中的实例
(2)利用Random类随机生成[0,100]范围内的30个数,统计各数据区间的元素个数。数据区间有[0,59],[60,69],[70,79],[80,89],[90,100]。
import java.util.Random;
//利用Random类随机生成[0,100]范围内的30个数,统计各数据区间的元素个数。数据区间有[0,59],[60,69],[70,79],[80,89],[90,100]。
public class First {
public static void main(String[] args) {
int[] a=new int[30];
Random obj=new Random();
for(int i=0;i<30;i++) {
a[i] = obj.nextInt(100);
}
int n = 0;
for(int x : a) {
System.out.print(x);
System.out.print(" ");
n++;
if(n%10==0)
System.out.println();
}
int a1=0,a2=0,a3=0,a4=0,a5=0;
for(int i=0;i<30;i++) {
if(a[i]>=0&&a[i]<=59)
a1++;
else if(a[i]>=60&&a[i]<=69)
a2++;
else if(a[i]>=70&&a[i]<=79)
a3++;
else if(a[i]>=80&&a[i]<=89)
a4++;
else
a5++;
}
System.out.println("[0,59]之间有"+a1+"个数");
System.out.println("[60,69]之间有"+a2+"个数");
System.out.println("[70,79]之间有"+a3+"个数");
System.out.println("[80,89]之间有"+a4+"个数");
System.out.println("[90,100]之间有"+a5+"个数");
}
}
(3)定义一个长度为10的整形数组,并随机生成10个元素,再将数组中的元素进行升序排列。
import java.util.Random;
//定义一个长度为10的整形数组,并随机生成10个元素,再将数组中的元素进行升序排列。
public class Third {
public static void main(String[] args) {
int[] a = new int[10];
Random obj=new Random();
for(int i=0;i<10;i++) {
a[i]=obj.nextInt(100);
}
System.out.println("随机生成的10个数:");
for(int x:a) {
System.out.println(x);
}
int e;
for(int i=0;i<10-1;i++) {
for(int j=0;j<10-1-i;j++) {
if(a[j]>a[j+1]) {
e=a[j];
a[j]=a[j+1];
a[j+1]=e;
}
}
}
System.out.println("升序排列:");
for(int i=0;i<10;i++) {
System.out.println(a[i]);
}
}
}
(4)检查输入的字符串是否是回文,所谓回文是指一个字符串正序读和逆序读都一样,比如“234432”、“我爱我”、“level”等都是回文。用两种方法实现。
方法一:
import java.util.Scanner;
public class Palindrome {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
while(true) {
System.out.print("请输入一个字符串:");
String a = in.nextLine();
int b=a.length()/2;
int i;
for(i=0;i<b&&a.charAt(i)==a.charAt(a.length()-i-1);i++){
}
if(i<b)
System.out.println("不是回文");
else
System.out.println("是回文");
if(a.equalsIgnoreCase("000")) {
System.out.println("程序关闭");
break;
}
}
in.close();
}
}
方法二:
import java.util.Scanner;
public class Palindrome2 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
while(true) {
System.out.print("请输入一个字符串:");
String a = in.nextLine();
StringBuffer b = new StringBuffer(a);
String s=b.reverse().toString();
if(s.equalsIgnoreCase(a))
System.out.println("是回文");
else {
System.out.println("不是回文");
}
if(a.equalsIgnoreCase("000")) {
System.out.println("程序关闭");
break;
}
}
in.close();
}
}
(5)输入一批考生的准考证号码,如果是15位,表示输入正确,否则重新输入。然后判断并显示这个人的考试类型(号码如果以奇数结尾,考试类型为A,否则为B),最后输出此准考证的前五位和后四位,其余的用*代替。
import java.util.Scanner;
public class Fourth {
public static void main(String[] args) {
System.out.print("请输入要输入学号的数量:");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
String[] id=new String[num];
String x = in.nextLine();
System.out.println("请输入"+num+"个学号:");
for(int i=0;i<num;i++) {
while(true) {
id[i]=in.nextLine();
if(id[i].length()!=15) {
System.out.println("输入有误,请重新输入");
}
else
break;
}
}
long[] intid=new long[num];
char[] type=new char[num];
for(int i=0;i<num;i++) {
intid[i]=Long.parseLong(id[i]);
if(intid[i]%2==0)
type[i]='B';
else
type[i]='A';
}
System.out.println();
System.out.println("学生信息如下:");
for(int i=0;i<num;i++) {
for(int j=0;j<5;j++) {
System.out.print(id[i].charAt(j));
}
System.out.print("******");
for(int j=11;j<15;j++) {
System.out.print(id[i].charAt(j));
}
System.out.println(" "+type[i]);
}
}
}