1. 掌握数组的声明、分配空间及初始化 ;
2. 理解多维数组(重点掌握二维);
3. 掌握String类的特点及常用方法的使用 ;
4. 掌握StringBuffer类的特点及常用方法的使用 ;
5. 掌握String类和StringBuffer类的区别 ;
6. 理解equal方法与==的区别;
7. 掌握常用类的使用
(1)实验中类名的定义规则见实验一 要求;
(2)程序中要有相应的注释说明
(3)变量名要见名识意,代码要求规范,左缩进。
定义一个6行6列的二维整型数组,输出该二维数组中的每行和每列的最大值、最小值、和平均值。(知识点:数组的创建、初始化和元素访问)
要求:(1)数组元素的值随机产生,大小为20值99之间;
(2)输出结果按下面表格的形式输出。每行,每列后面输出和、平均值、最大值和最小值,其中平均值保留小数点1位。
98 |
44 |
55 |
64 |
84 |
27 |
| |
sum |
avg |
min |
max |
67 |
53 |
75 |
91 |
74 |
64 |
| |
||||
67 |
64 |
83 |
62 |
39 |
27 |
| |
||||
81 |
45 |
26 |
98 |
24 |
55 |
| |
||||
56 |
34 |
64 |
60 |
97 |
32 |
| |
||||
66 |
39 |
28 |
22 |
77 |
98 |
| |
||||
-------------------------------- |
||||||||||
sum |
||||||||||
avg |
||||||||||
min |
||||||||||
max |
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最
前面的m个数。 (知识点:数组定义和创建、数组遍历、数组元素访问)
例如 1 2 3 4 5 6 7 移动4个就变成4 5 6 7 1 2 3
(1)n和m的值由用户输入;
(2)每个元素的值由用户输入;
(3)利用Scanner类完成数值的输入。
Scanner input = new Scanner(System.in);
System.out.println(“请输入数组元素的个数”);
int size = input.nextInt( );
有2个多维数组分别是 2 3 4 和 1 5 2 8
4 6 8 5 9 10 -3
2 7 -5 -18
按照如下方式进行运算。生成一个2行4列的数组。
此数组的第1行1列是2*1+3*5+4*2
第1行2列是2*5+3*9+4*7 第2行1列是4*1+6*5+8*2 依次类推。(知识点:多维数组定义和创建、数组遍历、数组元素访问)
编写一个Java程序,完成以下功能: (知识点:String创建和String常用方法的使用,注意查看Java doc API)
(1)声明一个名为school的String对象,内容是
“My school is Xuzhou Institute Of Technology”
(2)打印字符串的长度;
(3)打印字符串的第一个字符和最后一个字符;
(4)打印字符串的第一个单词和最后一个单词;
(5)打印”Xuzhou”在该字符串的起始位置(从0开始编号的位置);
(6)将该字符串转为大写字母输出
编写一个Java程序,完成以下功能: (知识点:StringBuffer创建和StringBuffer常用方法的使用,注意查看Java doc API)
Java和 JavaScript 虽有都有Java四个字,但它们是完完全全不同的两种东西,Java是由Sun 公司于1995年5月推出的,而JavaScript 是于1995年由Netscape公司设计实现而成的,由于Netscape公司与Sun公司合作,Netscape高层希望它看上去能够像Java,因此取名为JavaScript。
(1)请从上面一段文字中,找出所有名称为Java的字符串并统计该字符串出现的次数,注意不要统计名称为“JavaScript”中的Java字符串。
(2)在该段文字的后面追加一段文字:
Sun公司已被Oracle公司收购。
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉的半个”。
知识点:String中常用方法、Java中英文字节数
提示:通常说的一个字符占两个字节是指汉字,英文字母是一个字节
String s = “我ABC汉DEF”
(1)先将s转为字符数组 char c[] = s.toCharArray()
(2)判断每个字符是英文字符还是中文字符,思路是看这个字符所占字节的长度
String.valueOf(c).getBytes().length
(选做题)金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。
知识点:String中常用的方法
package EXPS.Exp02;
import java.util.Random;
/**
* @Author:XZITXX
* 本程序的功能是:生成一个随机6*6表格,求行列的和,均值,极值
*/
public class Exp02_01_20190507223 {
public static void main(String[] args) {
int [][] array=new int[6][6];
Random random=new Random();
int randomBaseNum=20;
for(int i=0; i<6; i++) {
for(int j=0; j<6; j++) {
array[i][j]=random.nextInt(79)+randomBaseNum;
}
}
for(int i=0; i<6; i++){
for(int j=0; j<6; j++){
System.out.print(array[i][j]+" ");//打印初始数组
}
System.out.print("|");
if(i==0){
System.out.println("sum avg min max ");
}
else{
System.out.println(rowSum(i-1,array)+" "+rowAvg(i-1,array)+" "+rowMin(i-1,array)+" "+rowMax(i-1,array));
}
}
System.out.println("-----------------");
System.out.print("sum ");
for(int i=0;i<6;i++){
System.out.print(colSum(i,array)+" ");
}
System.out.println("");
System.out.print("avg ");
for(int i=0;i<6;i++){
System.out.print(colAvg(i,array)+" ");
}
System.out.println("");
System.out.print("min ");
for(int i=0;i<6;i++){
System.out.print(colMin(i,array)+" ");
}
System.out.println("");
System.out.print("max ");
for(int i=0;i<6;i++){
System.out.print(colMax(i,array)+" ");
}
System.out.println("");
}
public static int rowSum(int row,int [][] array){ //求一行和
int res=0;
for(int i=0;i<6;i++){
res+=array[row][i];
}
return res;
}
public static String rowAvg(int row,int [][] array){
return String.format("%.1f",(rowSum(row,array)+0.0)/6);
}//求行平均
public static int rowMin(int row,int [][] array){//求行最小值
int res=array[row][0];
for(int i=1;i<6;i++){
res=Math.min(res,array[row][i]);
}
return res;
}
public static int rowMax(int row,int [][] array){//求行最大值
int res=array[row][0];
for(int i=1;i<6;i++){
res=Math.max(res,array[row][i]);
}
return res;
}
public static int colSum(int col,int [][] array){//求列和
int res=0;
for(int i=0;i<6;i++){
res+=array[i][col];
}
return res;
}
public static String colAvg(int col,int [][] array){
return String.format("%.1f",(colSum(col,array)+0.0)/6);
}//求列平均
public static int colMin(int col,int [][] array){//求列最小值
int res=array[0][col];
for(int i=1;i<6;i++){
res=Math.min(res,array[i][col]);
}
return res;
}
public static int colMax(int col,int [][] array){//求列最大值
int res=array[0][col];
for(int i=1;i<6;i++){
res=Math.max(res,array[i][col]);
}
return res;
}
package EXPS.Exp02;
import java.util.Scanner;
/**
* @Author:XZITXX
* 本程序的功能是:输入一个长度为N的序列,移动M个数
*/
public class Exp02_02_20190507223 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入数组元素的个数");
int size = input.nextInt();
if(size<=0){//判断非法数值
System.out.println("非法数值,程序将停止");
return;
}
int []array=new int[size];
int []temp=new int[size];
System.out.println("请依次输入每位数的值");
for(int i=0;i
package EXPS.Exp02;
/**
* @Author:XZITXX
* 本程序的功能是:矩阵相乘
*/
public class Exp02_03_20190507223 {
public static int [][] matixA={{2,3,4},{4,6,8}};
public static int [][] matixB={{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}};
public static void main(String[] args) {
int res=0;
for(int i=0;i
package EXPS.Exp02;
/**
* @Author:XZITXX
* 本程序的功能是:输出字符串相关信息
*/
public class Exp02_04_20190507223 {
public static void main(String[] args) {
String str="My school is Xuzhou Institute Of Technology";
System.out.println("字符串长度为:"+str.length());//求字符串长度
System.out.println("第一个字符为:"+str.charAt(0)+" "+"最后一个字符为:"+str.charAt(str.length()-1));//求指定位置字符
String []words=str.split(" ");//字符串分割
System.out.println("第一个单词为:"+words[0]+" "+"最后一个单词为:"+words[words.length-1]);
System.out.println("”Xuzhou”在该字符串的起始位置为:" +str.indexOf("Xuzhou"));//查询字串首次出现位置
System.out.println("大写结果:"+str.toUpperCase());//转大写
}
}
package EXPS.Exp02;
/**
* @Author:XZITXX
* 本程序的功能是:字符串查找,添加
*/
public class Exp02_05_20190507223 {
public static void main(String[] args) {
StringBuffer str=new StringBuffer("Java和 JavaScript 虽有都有Java四个字,但它们是完完全全不同的两种东西,Java是由Sun 公司于1995年5月推出的,而JavaScript 是于1995年由Netscape公司设计实现而成的,由于Netscape公司与Sun公司合作,Netscape高层希望它看上去能够像Java,因此取名为JavaScript。");
int count=0;
for(int i=0;i+3
package EXPS.Exp02;
// 由于采用UTF-8编码,因此大部分汉字所占字节为3
import java.util.Scanner;
/**
* @Author:XZITXX
* 本程序的功能是:实现字符串截取
*/
public class Exp02_06_20190507223 {
// cmd中在控制台输入中文字符存在问题
public static void main(String[] args) {
System.out.println("注意在UTF-8编码下,大部分汉字占3字节");
String s="我ABC汉DEF";
Scanner sc =new Scanner(System.in);
System.out.println("输入截取字节数:");
int len=sc.nextInt();
System.out.println("原字符串为: "+s);
System.out.println("截取结果为: "+subStr(s,len));
}
public static String subStr(String s,int len){
char[]c=s.toCharArray();
StringBuilder res=new StringBuilder();
for(int i=0;i0;i++){
res.append(c[i]);
len-=String.valueOf(c[i]).getBytes().length;
}
return res.toString();
}
}
package EXPS.Exp02;
import java.util.Stack;
/**
* @Author:XZITXX
* 本程序的功能是: 阿拉伯数字的金额转换成中国传统的形式
*/
public class Exp02_07_20190507223 {
public static String [] unit={"元","万","亿"};
public static String []Dir={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
public static void main(String[] args) {
String s="¥1011";
System.out.println("原金额 :"+s);
System.out.println("中文表示: "+toChinseVersion(s));
}
public static String toChinseVersion(String s){
StringBuffer str=new StringBuffer(s);
char[] a=str.delete(0,1).toString().toCharArray();
Stack stack=new Stack<>();
for(int i=a.length-1;i>=0;i--){
int val=a[i]-'0';
StringBuffer temp=new StringBuffer();
if(i>0 && val>0){
if(a[i-1]-'0'==0){
temp.append("零"+Dir[val]);
}
else{
temp.append(Dir[val]);
}
}
else if(val>0){
temp.append(Dir[val]);
}
int t=a.length-1-i;
if(t%4==0) temp.append(unit[t/4]);
else if(temp.length()!=0){
switch (t%4){
case 1:
temp.append("拾");
break;
case 2:
temp.append("佰");
break;
case 3:
temp.append("仟");
break;
}
}
stack.push(temp.toString());
}
StringBuffer res=new StringBuffer();
while(!stack.empty()){ //利用栈逆序将答案输出
res.append(stack.pop());
}
res.append("整");
return res.toString();
}
}
通过这次实验,我掌握了数组的声明、分配空间及初始化;理解了多维数组,重点掌握了二维数组;除此之外,我还掌握了String类的特点及常用方法的使用,StringBuffer类的特点及常用方法的使用 ,String类和StringBuffer类的区别;理解equal方法与==的区别并且掌握了常用类的使用。