题意:判断两个大数是否相等。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String a = sc.next();
String b = sc.next();
a = sweepZeroAndBlock(a);
b = sweepZeroAndBlock(b);
boolean flag = true;
if (a.length() == b.length()) {
for (int i = 0; i < a.length(); i++) {
if (a.charAt(i) != b.charAt(i)) {
flag = false;
break;
}
}
} else {
flag = false;
}
if (flag) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}
// 去掉s字符串中无用的0和空白
private static String sweepZeroAndBlock(String s) {
s = s.trim();// 去掉后边没有用的空格
int i = s.indexOf(".");
StringBuffer temp = new StringBuffer();// 不用这个会超内存
if (i > 0) {// 是小数
int len = i - 1;// 如果小数点后没有值那么小数点也不要
for (int j = s.length() - 1; j > i; j--) {
char ch = s.charAt(j);
if (ch >= '1' && ch <= '9') {
len = j;
break;
}
}
// 把字符串s中有用的数据拷贝到temp中
for (int j = 0; j <= len; j++) {
temp.append(s.charAt(j));
}
s = temp.toString();
}
return s;
}
}
1 2 2 2 3 3 4 3
NO YES YES NO
原文:http://blog.csdn.net/hncu1306602liuqiang/article/details/46664545