如何在以下代码中反击 java.lang.NumberFormatException?
How to counter a java.lang.NumberFormatException in the following code?
我正在寻找最大异或值。我正在将字符串 p
和 q
转换为整数 n
和 m
,这样我就可以检查排他性,但我遇到了 java.lang.NumberFormatException
。我该如何处理?
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
static int maxXor(int l, int r) {
String p = " ";
String q = " ";
String s = " ";
int sum = 0;
do {
p = (l % 2) + p;
q = (r % 2) + q;
l = l / 2;
r = r / 2;
} while ((l > 0) && (r > 0));
int n = Integer.valueOf(p);
int m = Integer.valueOf(q);
while ((n != 0) && (m != 0)) {
if ((n % 10) == (m % 10)) {
s = s + "0";
} else {
s = s + "1";
}
}
System.out.println(s);
int len = s.length();
int x = Integer.parseInt(s);
for (int i = 1; i <= len; i++) {
int d = x % 10;
sum = (sum * 10) + d;
x = x / 10;
}
return sum;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int res;
int _l;
_l = Integer.parseInt(in.nextLine());
int _r;
_r = Integer.parseInt(in.nextLine());
res = maxXor(_l, _r);
System.out.println(res);
}
}
您可能只需要用“”而不是“”来初始化 p 和 q。 “1”不是数字,因为“1”是一(即可以解析为一)。
int n = Integer.valueOf(p.trim());
int m = Integer.valueOf(q.trim());
这应该可以解决问题。
我正在寻找最大异或值。我正在将字符串 p
和 q
转换为整数 n
和 m
,这样我就可以检查排他性,但我遇到了 java.lang.NumberFormatException
。我该如何处理?
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
static int maxXor(int l, int r) {
String p = " ";
String q = " ";
String s = " ";
int sum = 0;
do {
p = (l % 2) + p;
q = (r % 2) + q;
l = l / 2;
r = r / 2;
} while ((l > 0) && (r > 0));
int n = Integer.valueOf(p);
int m = Integer.valueOf(q);
while ((n != 0) && (m != 0)) {
if ((n % 10) == (m % 10)) {
s = s + "0";
} else {
s = s + "1";
}
}
System.out.println(s);
int len = s.length();
int x = Integer.parseInt(s);
for (int i = 1; i <= len; i++) {
int d = x % 10;
sum = (sum * 10) + d;
x = x / 10;
}
return sum;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int res;
int _l;
_l = Integer.parseInt(in.nextLine());
int _r;
_r = Integer.parseInt(in.nextLine());
res = maxXor(_l, _r);
System.out.println(res);
}
}
您可能只需要用“”而不是“”来初始化 p 和 q。 “1”不是数字,因为“1”是一(即可以解析为一)。
int n = Integer.valueOf(p.trim());
int m = Integer.valueOf(q.trim());
这应该可以解决问题。