zoukankan      html  css  js  c++  java
  • Java 数组

    一、引用传递与数值传递

     1 // PassArray.java
     2 // Passing arrays and individual array elements to methods
     3 
     4 public class PassArray {
     5     
     6     public static void main(String[] args) {
     7         int a[] = { 1, 2, 3, 4, 5 };
     8         String output = "The values of the original array are:
    ";
     9 
    10         for (int i = 0; i < a.length; i++)
    11             output += "   " + a[i];
    12 
    13         output += "
    
    Effects of passing array " + "element call-by-value:
    "
    14                 + "a[3] before modifyElement: " + a[3];
    15 
    16         modifyElement(a[3]);
    17 
    18         output += "
    a[3] after modifyElement: " + a[3];
    19 
    20         output += "
     Effects of passing entire array by reference";
    21 
    22         modifyArray(a); // array a passed call-by-reference
    23 
    24         output += "
    
    The values of the modified array are:
    ";
    25 
    26         for (int i = 0; i < a.length; i++)
    27             output += "   " + a[i];
    28         
    29         System.out.println(output);
    30     }
    31     public static void modifyArray(int b[]) {
    32         for (int j = 0; j < b.length; j++)
    33             b[j] *= 2;
    34     }
    35     public static void modifyElement(int e) {
    36         e *= 2;
    37     }
    38 }

    按引用传递与按值传送数组类型方法参数的最大关键在于: 使用前者时,如果方法中有代码更改了数组元素的值,实际上是直接修改了原始的数组元素。 使用后者则没有这个问题,方法体中修改的仅是原始数组元素的一个拷贝。

    二、浮点数转化为人民币读法。比如将“¥123.52”转换为“壹佰贰拾叁元伍角贰分”。

     1 //浮点数转化为人民币读法
     2 //9999.99元以内
     3 import java.util.*;
     4 public class HanZi {
     5     private static char rmbArr[]={'零' , '壹' , '贰' , '叁' , '肆' , '伍' , '陆' , '柒' , '捌' , '玖'};
     6     private static char danweiArr[]={'十' , '百' , '千'};
     7     private static char yjfArr[]={'圆','角','分'};
     8     @SuppressWarnings("resource")
     9     public static void main(String[] args) {
    10         Scanner in=new Scanner(System.in);
    11         System.out.println("输入0-9999.99之间的小数(必须输入两位小数!):");
    12         String rmbInput=in.nextLine();
    13         char rmbOutput[]=new char[12];
    14         translate(rmbInput,rmbOutput);
    15         System.out.println("人民币读数:");
    16         System.out.println(rmbOutput);
    17     }
    18     public static void translate(String x,char rmb[]){
    19         int i,j,k;
    20         char qianArr[]=x.substring(0, x.indexOf('.')).toCharArray();
    21         char houArr[]=x.substring(x.indexOf('.')+1).toCharArray();
    22         int len=qianArr.length;
    23         int qArr[]=new int[len];
    24         int hArr[]=new int[2];
    25         for(i=0;i<len;i++){
    26             qArr[i]=qianArr[i]-48;
    27         }
    28         for(i=0;i<2;i++){
    29             hArr[i]=houArr[i]-48;
    30         }
    31         for(i=-1,j=len-2,k=-1;j>=0;j--){
    32             rmb[++k]=rmbArr[qArr[++i]];
    33             rmb[++k]=danweiArr[j];
    34             if(j==0)
    35                 rmb[++k]=rmbArr[qArr[++i]];
    36         }
    37         for(i=0;i<2;i++){
    38             rmb[++k]=yjfArr[i];
    39             rmb[++k]=rmbArr[hArr[i]];
    40         }
    41         rmb[++k]=yjfArr[i];
    42         k++;
    43         for(;k<12;k++){
    44             rmb[k]=' ';
    45         }
    46     }
    47 }

    三、随机生成十个整数并求和,消息框显示。

     1 import javax.swing.JOptionPane;
     2 public class RandomArraySum {
     3 
     4     public static void main(String[] args) {
     5         int []array=new int[10];
     6         int sum=0;
     7         String output="";
     8         for(int i=0;i<10;i++){
     9             array[i]=(int)(Math.random()*100);
    10             sum+=array[i];
    11         }
    12         output+="随机生成的十个数是:"+"
    ";
    13         for(int i=0;i<10;i++){
    14             output+=array[i]+" ";
    15         }
    16         output+="
    ";
    17         output+="十个数相加等于:"+"
    "+sum;
    18         JOptionPane.showMessageDialog(null, output,"输出",JOptionPane.INFORMATION_MESSAGE);
    19     }
    20 
    21 }

    四、大数相加

    import java.util.*;
    public class BigInt {
        public static void main(String[] args) {
            int a[]=null,b[]=null,c[]=null;
            System.out.println("输入第一个正整数:");
            a=input(a); 
            System.out.println("输入第二个正整数:");
            b=input(b);
            c=add(a,b);
            System.out.println("两数之和:");
            output(c);
        
        }
        public static int[] input(int number[]){
            @SuppressWarnings("resource")
            Scanner in=new Scanner(System.in);
            String i=in.nextLine();
            char ip[]=i.toCharArray();
            number=new int[ip.length];
            for(int k=0;k<ip.length;k++){
                number[k]=ip[k]-48;
            }
            return number;
        }
        public static int[] add(int x[],int y[]){
            int push=0;    //进位
            int l[]=y.length>x.length?y:x;
            int min[]=y.length>x.length?x:y;
            int r[]=new int[l.length];
            for(int i=l.length-1,j=min.length;i>=l.length-min.length;i--)
                r[i]=min[--j];
            int result[]=new int[l.length+1];
            int len=result.length;
            int left=l.length-1;
            int right=r.length-1;
            while(right>=0&&left>=0){
                result[--len]=(l[left]+r[right]+push)%10;
                if(l[left]+r[right]+push>=10)
                    {push=1;}
                else
                    {push=0;}
                right--; left--;
            }    
            if(push==1)
                result[--len]+=push;
            return result;
        }
        public static void output(int x[]){
            String o="";
            for(int i=0;i<x.length;i++){
                if(i==0&&x[i]==0)
                    continue;
                o+=x[i];
            }
            System.out.print(o);
        }
    }

  • 相关阅读:
    水晶报表 VS2010 应用
    crystalreport使用方法
    spring MVC核心思想
    一台服务器配置多个TOMCAT
    SQL server索引
    锁机制
    JAVA书籍
    Live 直播过程
    html5 video微信浏览器视频不能自动播放
    设计模式 抽象工厂模式
  • 原文地址:https://www.cnblogs.com/yifengyifeng/p/6034979.html
Copyright © 2011-2022 走看看