Java数组课后作业

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

 

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"));

    }

}

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

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

程序流程图:

源代码:

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);
	}
}

结果截图:

 

posted @ 2015-11-02 19:28  q白月倚寒楼  阅读(706)  评论(0编辑  收藏  举报