asdasd123123
سه شنبه 05 آذر 1392, 09:08 صبح
سلام دوستان
من می خوام مثلا کاربر در ورودی وارد کنه 25+16 و در جواب خروجی 41 چاپ شه. من کد زیر رو نوشتم، آیا راه بهتری وجود دارد؟
package calculator;
import java.util.Scanner;
public class Calculator
{
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
String sum;
while(true)
{
sum=scan.next();
if(sum.indexOf("+")!=-1) break;
}
String part1=sum.substring(0,sum.indexOf("+"));
String part2=sum.substring(sum.indexOf("+")+1);
char[] pc1=part1.toCharArray();
char[] pc2=part2.toCharArray();
int[] ip1=new int[pc1.length];
int[] ip2=new int[pc2.length];
for(int i=0;i<pc1.length;i++)
{
if(pc1[i]==48) ip1[i]=0;
else if(pc1[i]==49) ip1[i]=1;
else if(pc1[i]==50) ip1[i]=2;
else if(pc1[i]==51) ip1[i]=3;
else if(pc1[i]==52) ip1[i]=4;
else if(pc1[i]==53) ip1[i]=5;
else if(pc1[i]==54) ip1[i]=6;
else if(pc1[i]==55) ip1[i]=7;
else if(pc1[i]==56) ip1[i]=8;
else if(pc1[i]==57) ip1[i]=9;
else ip1[i]=0;
}
for(int i=0;i<pc2.length;i++)
{
if(pc2[i]==48) ip2[i]=0;
else if(pc2[i]==49) ip2[i]=1;
else if(pc2[i]==50) ip2[i]=2;
else if(pc2[i]==51) ip2[i]=3;
else if(pc2[i]==52) ip2[i]=4;
else if(pc2[i]==53) ip2[i]=5;
else if(pc2[i]==54) ip2[i]=6;
else if(pc2[i]==55) ip2[i]=7;
else if(pc2[i]==56) ip2[i]=8;
else if(pc2[i]==57) ip2[i]=9;
else ip2[i]=0;
}
int adad1=0,adad2=0;
for(int i=0;i<ip1.length;i++) adad1+=ip1[ip1.length-i-1]*Math.pow(10,i);
for(int i=0;i<ip2.length;i++) adad2+=ip2[ip2.length-i-1]*Math.pow(10,i);
System.out.println(adad1+adad2);
}
}
من می خوام مثلا کاربر در ورودی وارد کنه 25+16 و در جواب خروجی 41 چاپ شه. من کد زیر رو نوشتم، آیا راه بهتری وجود دارد؟
package calculator;
import java.util.Scanner;
public class Calculator
{
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
String sum;
while(true)
{
sum=scan.next();
if(sum.indexOf("+")!=-1) break;
}
String part1=sum.substring(0,sum.indexOf("+"));
String part2=sum.substring(sum.indexOf("+")+1);
char[] pc1=part1.toCharArray();
char[] pc2=part2.toCharArray();
int[] ip1=new int[pc1.length];
int[] ip2=new int[pc2.length];
for(int i=0;i<pc1.length;i++)
{
if(pc1[i]==48) ip1[i]=0;
else if(pc1[i]==49) ip1[i]=1;
else if(pc1[i]==50) ip1[i]=2;
else if(pc1[i]==51) ip1[i]=3;
else if(pc1[i]==52) ip1[i]=4;
else if(pc1[i]==53) ip1[i]=5;
else if(pc1[i]==54) ip1[i]=6;
else if(pc1[i]==55) ip1[i]=7;
else if(pc1[i]==56) ip1[i]=8;
else if(pc1[i]==57) ip1[i]=9;
else ip1[i]=0;
}
for(int i=0;i<pc2.length;i++)
{
if(pc2[i]==48) ip2[i]=0;
else if(pc2[i]==49) ip2[i]=1;
else if(pc2[i]==50) ip2[i]=2;
else if(pc2[i]==51) ip2[i]=3;
else if(pc2[i]==52) ip2[i]=4;
else if(pc2[i]==53) ip2[i]=5;
else if(pc2[i]==54) ip2[i]=6;
else if(pc2[i]==55) ip2[i]=7;
else if(pc2[i]==56) ip2[i]=8;
else if(pc2[i]==57) ip2[i]=9;
else ip2[i]=0;
}
int adad1=0,adad2=0;
for(int i=0;i<ip1.length;i++) adad1+=ip1[ip1.length-i-1]*Math.pow(10,i);
for(int i=0;i<ip2.length;i++) adad2+=ip2[ip2.length-i-1]*Math.pow(10,i);
System.out.println(adad1+adad2);
}
}