charAt() String index out of range: 0

Moliay 2018-12-15 01:09:26
class Solution {
public int myAtoi(String str) {
if(str == null || str.length() == 0){
return 0;
}

str = str.trim();//删空格
int flag = 1;
int index = 0;
int result = 0;

//System.out.println(str);//no error

if(str.charAt(index) == '-'){
flag = -1;
index ++;
}
else if(str.charAt(index) == '+'){
index ++;
}

for(;index<str.length();index ++){
if(str.charAt(index)>='9' || str.charAt(index)<='0'){
break;
}
result = result*10 + (str.charAt(index) - '0');
}
return flag*result;
}
}
...全文
523 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Moliay 2018-12-15
  • 打赏
  • 举报
回复
引用 2 楼 高分子 的回复:
没有报错呀,运行
Solution so = new Solution();
int a = so.myAtoi("55667788");
System.out.println(a);

结果为

55667788

Process finished with exit code 0
谢谢猿兄的帮忙哇 当元素全为空格的元素时,会造成处理后的字符串为空哟
Moliay 2018-12-15
  • 打赏
  • 举报
回复
class Solution {
public int myAtoi(String str) {
str = str.trim();//删空格

if(str == null || str.length() < 1){
return 0;
}

int flag = 1;
int index = 0;
long result = 0;

if(str.charAt(index) == '-'){
flag = -1;
index ++;
}
else if(str.charAt(index) == '+'){
index ++;
}

for(;index<str.length();index ++){
int t = str.charAt(index) - '0';
if(t>9 || t<0){
break;
}

if(flag == 1){
result = result*10 + t;
if(result > Integer.MAX_VALUE){
return Integer.MAX_VALUE;
}
}
else{
result = result*10 - t;
if(result < Integer.MIN_VALUE){
return Integer.MIN_VALUE;
}
}
}

int temp = (int)result;
return temp;
}
}
高分子 2018-12-15
  • 打赏
  • 举报
回复
没有报错呀,运行
Solution so = new Solution();
int a = so.myAtoi("55667788");
System.out.println(a);

结果为

55667788

Process finished with exit code 0
Moliay 2018-12-15
  • 打赏
  • 举报
回复
求助各位大佬

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧