Java数组课后作业

时间:2023-03-09 15:26:04
Java数组课后作业

1.运行TestArrays.java,了解Arrays中的一些重要方法的用法。

Java数组课后作业

Arrays.equals(a 1, a2):判断数组是否相等。

int[] b = Arrays.copyOf(a, 6):将a数组赋给b数组,长度为6。

Arrays.fill(b , 2, 4 , 1):将b数组的第3个元素(包括)到第5个元素(不包括)赋为1。

Arrays.sort(b):对b数组进行排序。

2.请编写一个程序将一个整数转换为汉字读法字符串。比如“1123”转换为“一千一百二十三”。

public class Num2Rmb

{

private String[] hanArr = {"零" , "壹" , "贰" , "叁" , "肆" ,

"伍" , "陆" , "柒" , "捌" , "玖"};

private String[] unitArr = {"十" , "百" , "千","万","十万","百万"};

/**

* 把一个四位的数字字符串变成汉字字符串

* @param numStr 需要被转换的四位的数字字符串

* @return 四位的数字字符串被转换成的汉字字符串。

*/

private String toHanStr(String numStr)

{

String result = "";

int numLen = numStr.length();

//依次遍历数字字符串的每一位数字

for (int i = 0 ; i < numLen ; i++ )

{

//把char型数字转换成的int型数字,因为它们的ASCII码值恰好相差48

//因此把char型数字减去48得到int型数字,例如'4'被转换成4。

int num = numStr.charAt(i) - 48;

//如果不是最后一位数字,而且数字不是零,则需要添加单位(千、百、十)

if ( i != numLen - 1 && num != 0)

{

result += hanArr[num] + unitArr[numLen - 2 - i];

}

//否则不要添加单位

else

{

//上一个数是否为“零”,不为“零”时就添加

if(result.length()>0 && hanArr[num].equals("零") && result.charAt(result.length()-1)=='零')

continue;

result += hanArr[num];

}

}

//只有个位数,直接返回

if(result.length()==1)

return result;

int index=result.length()-1;

while(result.charAt(index)=='零'){

index--;

}

if(index!=result.length()-1)

return result.substring(0,index+1);

else {

return result;

}

}

public static void main(String[] args)

{

Num2Rmb nr = new Num2Rmb();

System.out.println("只支持整数(0~百万)");

//测试把一个四位的数字字符串变成汉字字符串

System.out.println(nr.toHanStr("0"));

System.out.println(nr.toHanStr("1"));

System.out.println(nr.toHanStr("10"));

System.out.println(nr.toHanStr("15"));

System.out.println(nr.toHanStr("110"));

System.out.println(nr.toHanStr("123"));

System.out.println(nr.toHanStr("105"));

System.out.println(nr.toHanStr("1000"));

System.out.println(nr.toHanStr("1100"));

System.out.println(nr.toHanStr("1110"));

System.out.println(nr.toHanStr("1005"));

System.out.println(nr.toHanStr("1105"));

System.out.println(nr.toHanStr("1111"));

System.out.println(nr.toHanStr("10000"));

System.out.println(nr.toHanStr("10001"));

System.out.println(nr.toHanStr("10011"));

System.out.println(nr.toHanStr("10111"));

System.out.println(nr.toHanStr("11111"));

System.out.println(nr.toHanStr("11000"));

System.out.println(nr.toHanStr("11100"));

System.out.println(nr.toHanStr("11110"));

System.out.println(nr.toHanStr("101110"));

System.out.println(nr.toHanStr("1001110"));

}

}

Java数组课后作业

3.随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中。

设计思路:利用随机数算法产生10个随机数,并让它们累加。

程序流程图:

Java数组课后作业

源代码:

package test;

import javax.swing.JOptionPane;

public class ArraySum{
public static void main(String[] args){
int[] array=new int[10];//定义一个数组,长度为10。
int result=0; //定义一个变量初值为0。
String output="";
//随机生成一个100以内的数,填充数组。
for(int i=0;i<array.length;i++)
array[i]=(int)(Math.random()*100);
//将数组元素输出。
output+="随机生成的十个数是:"+"\n";
for(int i=0;i<array.length;i++)
output+=array[i]+" ";
output+="\n";//换行
//将数组元素相加。
for(int i=0;i<array.length;i++)
result+=array[i];
output+="十个数相加等于:"+"\n"+result;
//以消息框的形式输出。
JOptionPane.showMessageDialog(null, output,
"输出",JOptionPane.INFORMATION_MESSAGE);
}
}

结果截图:

Java数组课后作业