动手动脑
1、[Ljava.lang.Object;@2a139a55;
之前表示的数组类型,@之后的一串数字表示的是具体地址。
应该通过下标访问数组元素
2、数组元素的引用:
引用传递数组元素时,会直接修改数组元素值,而值传递则是产生一个拷贝,并不会修改值
3、转换大写:
package Ckm;
import javax.swing.*;
public class Daxiezhuanhuan {
public static void main(String[] args) {
// TODO 自动生成的方法存根
String as=JOptionPane.showInputDialog("输入数字");
double number=Double.parseDouble(as);
number=number*100;
int n=0,num=(int)number; //分后全部舍弃
int array[]=new int[9];
for(int i=0;i<10;i++){
if(num==0)
break;
array[i]=num%10;
num=num/10;
n++;
}
String str[]={"分","角","元","拾","佰","千","万","十","佰"};
String str1[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
for(int i=n-1;i>=0;i--){
System.out.print(str1[array[i]]);
System.out.print(str[i]);
}
}
}
4、大数字实现
加法运算:
package Ckm;
import javax.swing.*;
public class Jia {
public static void main(String[] args) {
// TODO 自动生成的方法存根
String num1=JOptionPane.showInputDialog("第一个数字");
String num2=JOptionPane.showInputDialog("第二个数字");
int nu1[]=new int[10];
int nu2[]=new int[10];
int nu3[]=new int[10];
int j=0;
for(int i=num1.length()-1;i>=0;i--){
nu1[j++]=num1.charAt(i)-'0';
}
j=0;
for(int i=num2.length()-1;i>=0;i--){
nu2[j++]=num2.charAt(i)-'0';
}
int next=0;
for(int i=0;i<nu1.length;i++){
nu3[i]=(nu1[i]+nu2[i]+next)%10;
next=(nu1[i]+nu2[i]+next)/10;
}
for(int i=nu3.length-1;i>=0;i--){
System.out.print(nu3[i]);
}
}
}
减法运算:
package Ckm;
import javax.swing.*;
public class Jian {
public static void main(String[] args) {
// TODO 自动生成的方法存根
String num1=JOptionPane.showInputDialog("第一个数字");
String num2=JOptionPane.showInputDialog("第二个数字");
int nu1[]=new int[10];
int nu2[]=new int[10];
int nu3[]=new int[10];
int j=0;
for(int i=num1.length()-1;i>=0;i--){
nu1[j++]=num1.charAt(i)-'0';
}
j=0;
for(int i=num2.length()-1;i>=0;i--){
nu2[j++]=num2.charAt(i)-'0';
}
//两数字比较大小
int flag=0;
for(int i=nu1.length-1;i>=0;i--){
if(nu1[i]>nu2[i]){
flag=1;break;//1表示1数字大
}
if(nu1[i]<nu2[i]){
flag=2;break;//2表示2数字大
}
}
int next=0;
if(flag==1){
for(int i=0;i<nu1.length;i++){
nu3[i]=nu1[i]-nu2[i]+next;
if(nu3[i]<0){
next=-1;
nu3[i]=nu3[i]+10;
}
else
next=0;
}
for(int i=nu3.length-1;i>=0;i--){
System.out.print(nu3[i]);
}}
if(flag==2){
for(int i=0;i<nu1.length;i++){
nu3[i]=nu2[i]-nu1[i]+next;
if(nu3[i]<0){
next=-1;
nu3[i]=nu3[i]+10;
}
else
next=0;
}
System.out.print("-");
for(int i=nu3.length-1;i>=0;i--){
System.out.print(nu3[i]);
}
if(flag==0){
System.out.println("0");
}}
}
}
程序设计
1、设计思想
使用random类,生成10个随机数进行赋值,最后使用for循环求值
2、程序源代码:
package Array;
import javax.swing.*;
import java.util.*;
public class qwer {
public static void main(String[] args){
Random as=new Random();
int array[]=new int[10];
int num=0;
String str="随机数为:";
for(int i=0;i<10;i++){
//生成随机数
array[i]=as.nextInt();
str=str+' '+array[i];
num=num+array[i];
}
JTextArea text=new JTextArea(str);
JOptionPane.showConfirmDialog(null, text);
JOptionPane.showConfirmDialog(null, "总和为 "+num);
}
}
3、编程总结:
学到一个JTextArea的类;
复习了random类;
程序中由于生成的为随机数字,加和会超过上限,可以加以限制。
4、结果截图:
大写汉字转换:
大数字加法:
大数字减法:
随机数: