Man*_*anu 14 java string integer
我有一串由数字序列组成的字符串(例如"1234").如何在不使用Java的库函数String的int情况下返回Integer.parseInt?
public class StringToInteger {
public static void main(String [] args){
int i = myStringToInteger("123");
System.out.println("String decoded to number " + i);
}
public int myStringToInteger(String str){
/* ... */
}
}
Run Code Online (Sandbox Code Playgroud)
Ósc*_*pez 27
这有什么问题?
int i = Integer.parseInt(str);
Run Code Online (Sandbox Code Playgroud)
编辑:
如果您确实需要手动进行转换,请尝试以下方法:
public static int myStringToInteger(String str) {
int answer = 0, factor = 1;
for (int i = str.length()-1; i >= 0; i--) {
answer += (str.charAt(i) - '0') * factor;
factor *= 10;
}
return answer;
}
Run Code Online (Sandbox Code Playgroud)
以上内容对于正整数都可以正常工作,如果数字是负数,你必须先做一点检查,但我会将其作为练习留给读者.
如果不允许使用标准库,则有许多方法可以解决此问题.考虑这个问题的一种方法是作为递归函数:
您将需要逻辑到特殊情况0和负数,但否则这可以相当简单地完成.
由于我怀疑这可能是家庭作业(并且知道某些学校的事实),我将把实际转换作为练习留给读者.:-)
希望这可以帮助!