PAT甲级java解题
题目1001: Calculate a+b and output the sum in standard format – that is, the digits must be separated into groups of three by commas (unless there are less than four digits).
Input Specification:
Each input file contains one test case. Each case contains a pair of integers a and b where −106≤a,b≤106. The numbers are separated by a space.
Output Specification:
For each test case, you should output the sum of a and b in one line. The sum must be written in the standard format.
Sample Input:
-1000000 9
Sample Output:
-999,991
代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.util.Scanner;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
Integer sum = a+b;
//对于特例无需格式化处理
if (sum < 1000 && sum > -1000)
System.out.println(sum);
else
System.out.println(format(sum));
}
private static String format(Integer num) {
//使用stringbuffer对每个数字及逗号进行连接
StringBuffer sb = new StringBuffer();
String str = num.toString();
boolean isNegative = (num<0);
if(isNegative) {
str = str.substring(1);
sb.append("-");
}
int length = str.length();
for(int i = 0;i<length;i++) {
//对于特定的位置加入“,”,注意末尾无论如何不能加“,”
if((length-1-i)%3 == 0&&i!=length-1) {
sb.append(str.charAt(i));
sb.append(",");
} else
sb.append(str.charAt(i));
}
return sb.toString();
}
}