/* 给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。*/
方法一: public class Test5Case2 { public static void main(String[] args) { /* 给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。 注意:需要用已有的知识完成。*/ //int类型的数据,定义字符串时,结果不要超过int的大小 String num1 = "12345"; String num2 = "12345"; //调用方法,利用整数进行相乘 int a = getInt(num1); int b = getInt(num2); System.out.println(a); System.out.println(b); int product = a * b; //把整数变成字符串 //StringBuilder StringBuilder sb = new StringBuilder(); String result = sb.append(product).toString(); System.out.println(result); } //把num1和num2变成对应的整数才可以进行乘积 //"12345" //先遍历字符串依次得到每一个字符 '1' '2' '3' '4' '5' //再把字符变成对应的数字即可 1 2 3 4 5 //把每一个数字组合到一起 12345 public static int getInt(String num){ int number = 0; for (int i = 0; i < num.length(); i++) { char c = num.charAt(i); int cNum = c - 48; number = number * 10 + cNum; } return number; } }
运行结果:
方法二:
public class Test5Case1 { public static void main(String[] args) { /* 给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。 注意:需要用已有的知识完成。*/ //不需要考虑乘积过大之后的结果 //就认为乘积一定是小于int的最大值的 String num1 = "3"; String num2 = "4"; //1.把num1和num2变成对应的整数才可以 //"123456789" //先遍历字符串依次得到每一个字符 '1' '2' '3' '4' '5' '6' '7' '8' '9' //再把字符变成对应的数字即可 1 2 3 4 5 6 7 8 9 //把每一个数字组合到一起 123456789 int number1 = 0; int number2 = 0; for (int i = 0; i < num1.length(); i++) { char c1 = num1.charAt(i); int c1Num = c1 - 48; number1 = number1 * 10 + c1Num; } for (int i = 0; i < num2.length(); i++) { char c2 = num2.charAt(i); int c2Num = c2 - 48; number2 = number2 * 10 + c2Num; } System.out.println(number1); System.out.println(number2); //2.利用整数进行相乘 int product = number1 * number2; //3.可以把整数变成字符串 //+"" StringBuilder sb = new StringBuilder(); String result = sb.append(product).toString(); System.out.println(result); } }