如何在以下代码中反击 java.lang.NumberFormatException?

How to counter a java.lang.NumberFormatException in the following code?

我正在寻找最大异或值。我正在将字符串 pq 转换为整数 nm,这样我就可以检查排他性,但我遇到了 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());

这应该可以解决问题。