线程 "main" java.lang.NumberFormatException 中的异常:对于输入字符串:“3727284434”
Exception in thread "main" java.lang.NumberFormatException: For input string: "3727284434"
如何处理异常?
问:给定一个以数字列表表示的非负数,将数字加 1(增加由数字表示的数字)。存储数字时,最高有效数字是数组的第一个元素。
输入:
N = 3
arr[] = {1, 2, 4}
输出:
1 2 5
解释:
124+1 = 125
// { Driver Code Starts
import java.io.*;
import java.util.*;
class GFG {
public static void main(String args[]) throws IOException {
BufferedReader read =
new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(read.readLine());
while (t-- > 0) {
int N = Integer.parseInt(read.readLine());
String S[] = read.readLine().split(" ");
ArrayList<Integer> arr = new ArrayList<>();
for(int i=0 ; i<N ; i++)
arr.add(Integer.parseInt(S[i]));
Solution ob = new Solution();
ArrayList<Integer> res = ob.increment(arr,N);
for(int i=0; i<res.size(); i++)
System.out.print(res.get(i) + " ");
System.out.println();
}
}
}// } Driver Code Ends
//User function Template for Java
class Solution {
static ArrayList<Integer> increment(ArrayList<Integer> arr , int N)//It //is mendetory that return type should be ArrayList of integers.
{
String s = "";
String fs ="";
for(int i =0 ; i<N ; i++)
s = s+arr.get(i);
int cal = Integer.parseInt(s);
cal = cal+1;
fs= Integer.toString(cal);
ArrayList<Integer> al = new ArrayList<>();
for(int i =0 ;i<fs.length() ; i++)
al.add(Character.getNumericValue(fs.charAt(i)));
return al;
}
};
试试这个。
static ArrayList<Integer> increment(ArrayList<Integer> arr , int N) {
int carry = 1;
ArrayList<Integer> result = new ArrayList<>(arr);
for (int i = result.size() - 1; i >= 0 && carry > 0; --i) {
int sum = result.get(i) + carry;
result.set(i, sum % 10);
carry = sum / 10;
}
if (carry > 0)
result.add(0, carry);
return result;
}
和
int[] in = {3, 7, 2, 7, 2, 8, 4, 4, 3, 4};
ArrayList<Integer> arr = new ArrayList<>();
for (int i : in)
arr.add(i);
System.out.println(increment(arr, arr.size()));
输出:
[3, 7, 2, 7, 2, 8, 4, 4, 3, 5]
如何处理异常?
问:给定一个以数字列表表示的非负数,将数字加 1(增加由数字表示的数字)。存储数字时,最高有效数字是数组的第一个元素。
输入:
N = 3
arr[] = {1, 2, 4}
输出:
1 2 5
解释:
124+1 = 125
// { Driver Code Starts
import java.io.*;
import java.util.*;
class GFG {
public static void main(String args[]) throws IOException {
BufferedReader read =
new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(read.readLine());
while (t-- > 0) {
int N = Integer.parseInt(read.readLine());
String S[] = read.readLine().split(" ");
ArrayList<Integer> arr = new ArrayList<>();
for(int i=0 ; i<N ; i++)
arr.add(Integer.parseInt(S[i]));
Solution ob = new Solution();
ArrayList<Integer> res = ob.increment(arr,N);
for(int i=0; i<res.size(); i++)
System.out.print(res.get(i) + " ");
System.out.println();
}
}
}// } Driver Code Ends
//User function Template for Java
class Solution {
static ArrayList<Integer> increment(ArrayList<Integer> arr , int N)//It //is mendetory that return type should be ArrayList of integers.
{
String s = "";
String fs ="";
for(int i =0 ; i<N ; i++)
s = s+arr.get(i);
int cal = Integer.parseInt(s);
cal = cal+1;
fs= Integer.toString(cal);
ArrayList<Integer> al = new ArrayList<>();
for(int i =0 ;i<fs.length() ; i++)
al.add(Character.getNumericValue(fs.charAt(i)));
return al;
}
};
试试这个。
static ArrayList<Integer> increment(ArrayList<Integer> arr , int N) {
int carry = 1;
ArrayList<Integer> result = new ArrayList<>(arr);
for (int i = result.size() - 1; i >= 0 && carry > 0; --i) {
int sum = result.get(i) + carry;
result.set(i, sum % 10);
carry = sum / 10;
}
if (carry > 0)
result.add(0, carry);
return result;
}
和
int[] in = {3, 7, 2, 7, 2, 8, 4, 4, 3, 4};
ArrayList<Integer> arr = new ArrayList<>();
for (int i : in)
arr.add(i);
System.out.println(increment(arr, arr.size()));
输出:
[3, 7, 2, 7, 2, 8, 4, 4, 3, 5]