数组和字符串编程
实验目的和要求
(1) 通过实验,掌握Java语言中数组、字符串程序设计的基本方法。
(2) 较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。
实验内容
(1) 编写一个程序,在控制台输入10个数,按大小顺序输出。
(2) 求一个3*3矩阵对角元素之和。
(3) 输入一段字符串,统计其中有多少个单词。(单词用空格隔开)
(4) 运用合理的数据结构,统计一个整型数组中包含多少个不同的整数,并将其逆序输出。
实验记录
(1) 编写一个程序,在控制台输入10个数,按大小顺序输出。
import java.util.*;
public class T11 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
String []c=s.split(" ");
int []in=new int[10];
for(int i=0;i<10;i++) {
in[i]=Integer.parseInt(c[i]);
}
Arrays.sort(in);
for(int i=0;i<10;i++) {
System.out.print(in[i]+" ");
}
}
}
(2) 求一个3*3矩阵对角元素之和。
import java.util.*;
public class T12 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//输入矩阵元素
Scanner sc=new Scanner(System.in);
int []r=new int[10];
for(int i=1;i<=9;i++) {
r[i]=sc.nextInt();
}
int sum=0;
for(int i=1;i<=9;i++) {
if((i%4)==1) {
sum+=r[i];
}
}
System.out.print(sum);
}
}
(3) 输入一段字符串,统计其中有多少个单词。(单词用空格隔开)
import java.util.*;
public class T13 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
int num=0;
for(int i=0;i<s.length();i++) {
char c=s.charAt(i);
if(('a'<=c&&c<='z')||('A'<=c&&c<='Z')) {
num++;
}
}
System.out.println(num);
}
}
(4) 运用合理的数据结构,统计一个整型数组中包含多少个不同的整数,并将其逆序输出。
import java.util.*;
public class T14 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner (System.in);
String s=sc.nextLine();
String []s1=s.split(" ");
int []a=new int [s1.length];
for(int i=0;i<s1.length;i++) {
a[i]=Integer.parseInt(s1[i]);
}
Arrays.sort(a);
int tag=0;
for(int i=1;i<a.length;i++) {
while((a[i]==a[i-1])&&i>0) {
if((tag+i)>=(a.length)) {
break;
}
tag++;
for(int j=i;j<a.length-1;j++) {
a[j]=a[j+1];
}
}
}
for(int i=a.length-tag-1;i>=0;i--) {
System.out.print(a[i]+" ");
}
}
}
遇到的问题和解决方法
1.给数字排序的时候发现用冒泡排序太繁复了,而用Arrays.sort()就方便多了
心得体会
- 用Integer.parseInt()可以把字符转成整数
- split()可以分割字符串
- Arrays.sort可以给数字排序,十分方便