我想將字符串轉換爲整數,但是當我嘗試打印結果時,我無法獲得正確的輸出。我想將字符串轉換爲整數,但我不能打印結果
package com.company;
public class Main {
public static void main(String[] args){
String str ="-123456";
int i = atoi(str);
System.out.println(i);
}
public static int atoi(String str){
if (str == null || str.length() < 1)
return 0;
str = str.trim();
char flag = '+';
int i = 0;
if (str.charAt(0) == '-'){
flag = '-';
i++;
} else if (str.charAt(0) == '+'){
i++;
}
double result = 0;
while (str.length() > 1 && str.charAt(i) >= '0' && str.charAt(i) <= '9'){
result = result * 10 + (str.charAt(i)-'0');
i++;
}
if (flag == '-'){
result = -result;
}
if (result > Integer.MAX_VALUE){
return Integer.MAX_VALUE;
}
if (result < Integer.MIN_VALUE){
return Integer.MIN_VALUE;
}
return (int) result;
}
}
This is the result after I run the code
請注意,除非這是一個練習,否則您可以使用'Integer.parseInt(String str)'而不是實現自己的'atoi'。 – Aaron
我想用'Integer.parseInt()'不是答案嗎?關於你的代碼,錯誤是'while(str.length()> 1',因爲str不會改變,所以這個條件總是成立的。 – jaudo