• 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+="随机生成的十个数是:"+"
    ";
    		for(int i=0;i<array.length;i++)
    			output+=array[i]+" ";
    			output+="
    ";//换行
    			//将数组元素相加。
    			for(int i=0;i<array.length;i++)
    				result+=array[i];
    				output+="十个数相加等于:"+"
    "+result;
    			//以消息框的形式输出。
    			JOptionPane.showMessageDialog(null, output,
    			"输出",JOptionPane.INFORMATION_MESSAGE);
    	}
    }
    

    结果截图:

     

  • 相关阅读:
    通过出生日期获取年龄的方法--Java
    Hql没有limit,替换方案
    springMvc <form action="">提交跳转路径问题
    The user specified as a definer ('root'@'%') does not exist
    Eclipse中SVN设置文件为ignore后重新添加至版本控制
    (转)关于BigDecimal 转化字符串toPlainString()和toString()的区别
    禅道---Bug管理模块
    github pages部署静态网页
    mybatis-generator 代码自动生成工具(maven方式)
    警告: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:JsonBlog' did not find a matching property.
  • 原文地址:https://www.cnblogs.com/kt97458/p/4931120.html
Copyright © 2020-2023  润新知