trim()与String index out of range: 0
当使用trim()处理字符串后,发现 String index out of range: 0报错?
而且觉得代码无懈可击?一时想不出来什么时候会为空?
注意特殊情况处理的字符元素都是空格,eg:" "。空格被清除掉,可不就是空字符串吗,所以需要判断先你现在的String是不是空,再取下标~
附小陌的错误经历:
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;
}
}
改正版:
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;
}
}
trim()与String index out of range: 0的更多相关文章
- java.lang.StringIndexOutOfBoundsException: String index out of range: 0
hibernet 报错 java.lang.StringIndexOutOfBoundsException: String index out of range: 0 处理方法 数据表字段为char ...
- hibernate createSQLQuery StringIndexOutOfBoundsException: String index out of range: 0
有一个sql用union拼接的如下: select id,(**还有很多字段**),'' as NewName from tb1 union select id,(**还有很多字段**),name a ...
- tk.mybatis 报错:tk.mybatis.mapper.MapperException: tk.mybatis.mapper.MapperException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'apiLogMapper ...
- java.sql.SQLException:Column Index out of range,0<1
1.错误描述 java.sql.SQLException:Column Index out of range,0<1 2.错误原因 try { Class.forName("com.m ...
- Spring Boot 启动报错 Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 37
使用命令 java -jar springBoot.jar 启动项目,结果报错如下: Exception at java.lang.String.substring(String.java:) at ...
- IndexError:string index out of range
IndexError:string index out of range 出现在下标越界的情况,如 item[1],可能为空的时候下标就会越界
- mac安装MySQLdb:IndexError: string index out of range
使用mac安装MySQLdb的时候出现string index out of range 大概的错误是这样的: 然后尝试手动安装,我下载了包后,依然出现这个错误. 于是百度了下: https://ww ...
- Springboot+Mybatis:启动报错 String index out of range: -37
springBoot+Druid+Mybatis :启动错误描述 Error parsing SQL Mapper Configuration. Cause: java.lang.StringInde ...
- Mac安装Mysql-python遇到的坑,被这俩报错反复摩擦:'my_config.h' file not found 和 IndexError: string index out of range
最后Stackoverflow上面的大神解决了问题: Link brew install mysql brew unlink mysql brew install mysql-connector-c ...
- java.sql.SQLException: Parameter index out of range (0 < 1 ).
向SQL中传入数据是从1开始的!!! 从ResultSet中取数据也是从1开始的!
随机推荐
- hbase - [03] 客户端常用命令(hbase shell)
1.列出所有namespace list_namespace 2.创建namespace create_namespace 'ns_name' 3.修改namespace属性 alter_namesp ...
- Hadoop - HDFS 概述
什么是HDFS HDFS的优缺点 HDFS的文件块大小 HDFS的写数据流程 HDFS的副本配置策略 HDFS读数据的流程 什么是HDFS HDFS(Hadoop Distributed File S ...
- Qt个人项目总结 —— MySQL数据库查询与断言
3.Qt项目总结--数据库查询断言问题 问题: 当我使用MySQL数据库的查询操作时, 如果查询的数据在数据库中不存在,那么Qt会直接被干崩溃 但是?为什么呢?不应该是返回if语句中的结果吗,为什么会 ...
- 【数值计算方法】线性方程组迭代算法的Python实现
线性方程组迭代算法的Python实现 jacobi,GS,SOR迭代法 def JacobiIter(A:np.ndarray, b:np.ndarray, tol:float=1e-5, maxIt ...
- Golang 入门 : 语言环境安装
下载介绍 在go的官方网址上下载go最新版本https://golang.google.cn/dl/,或者在 Go 的中文网上下载https://studygolang.com/dl,两个网站打开的内 ...
- vim中文乱码 vim字符集设置
vim中文乱码 vim字符集设置 vim的设置一般放在/etc/vimrc文件中,不过,建议不要修改它.可以修改~/.vimrc文件(默认不存在,可以自己新建一个),写入所希望的设置. set fil ...
- 漏洞编号CVE-2022-27191 漏洞公告 ALINUX3-SA-2024:0050: container-tools:rhel8 安全和BUG修复更新
基于Debian的系统(如Ubuntu),使用apt sudo apt-get update sudo apt-get install --only-upgrade container-selinux ...
- pve节点频繁宕机问题排查
1.时间: 我是大概20220521日上午11:03分收到这个事情开始跟进: 再这之前一直是其他同事在处理,由于最近比较忙,没有安排的事情基本也都没有深入跟进,只是知道个大概. 2.问题现象: q ...
- Docker,vs2019下 使用.net core创建docker镜像 遇到的一些问题
步骤主要分为以下几步: 1.创建docker for linux 的.netcore 项目(vs 自动创建了dockerfile 如果没有需要自己创建在根目录下) 2.编译项目到指定目录下 3.b ...
- linux中安装firebird
本在树莓派上安装sqlite,因为sqlite的多用户需要自己控制读写.最终选择稳定够用的fb2.5. 嵌入式无论哪一种fb都差不多. 1.安装 sudo apt-get install firebi ...