【解决问题.思路篇】StringIndexOutOfBoundsException:String index out of range: -1

看到题目,就应该能想到应该是字符串过长引起的问题。下面咱们分析一下。

报错:

严重: Servlet.service()for servlet jsp threw exception
java.lang.StringIndexOutOfBoundsException:String index out of range: -1

根据代码跟踪,发现是首页数据加载完之后就会报错,所以继续跟踪,发现了问题。

当我们输入了访问地址:localhost:8080页面以及数据加载完就会报错,抛异常。但是不影响运行。后面一步步跟踪代码,终于找到问题的根本所在了。

其中一个jsp页面是这样写的:

//获取IP地址
StringIp=request.getRemoteAddr();
String ip1,ip2,ip3,ip4;

int i=Ip.indexOf(".");
ip1=Ip.substring(0,i);
Ip=Ip.substring(i+1,Ip.length());

i=Ip.indexOf(".");
ip2=Ip.substring(0,i);
Ip=Ip.substring(i+1,Ip.length());

i=Ip.indexOf(".");
ip3=Ip.substring(0,i);
ip4=Ip.substring(i+1,Ip.length());

String Ipone=ip1;
StringIptwo=ip1+"."+ip2;

发现获取Ip获取后的值为0:0:0:0:0:0:0:1。Ip的值太长了,于是把indexOf(".")改为indexOf(":")还报错:0:0:0:1,还是太长了。于是发现这是因为访问地址的路径为localhost:8080,修改为127.0.0.1:8080就可以了。

总结

其实很多时候,当我们积累足够的时候,就能根据报错找出大概是什么问题,然后根据问题顺藤摸瓜就能找到问题的所在。解决问题的思路这也是一种经验,多积累。

时间: 2024-09-30 07:57:22

【解决问题.思路篇】StringIndexOutOfBoundsException:String index out of range: -1的相关文章

java.lang.StringIndexOutOfBoundsException: String index out of range: 0错误的原因

java.lang.StringIndexOutOfBoundsException: String index out of range: 0 在hibernate做查询的时候 List<?> listObject = sqlQuery .setFirstResult((currentPageIndex - 2) * showCounts) .setMaxResults(showCounts) .setResultTransformer( org.hibernate.transform.Tra

Spring Boot 启动报错 Exception in thread &quot;main&quot; java.lang.StringIndexOutOfBoundsException: String index out of range: 37

使用命令 java -jar springBoot.jar  启动项目,结果报错如下: Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 37 at java.lang.String.substring(String.java:1963) at org.springframework.boot.loader.jar.JarFile.create

Hibernate String index out of range 0 异常的一种情况

Hibernate String index out of range 0 异常 执行代码如下: 因为数据库有两个字段值是空 不是null ,所以hibernate抛出 String index out of range 0 异常

MacOS 安装MysqlDB 问题解决方案( 解决 IndexError: string index out of range)

pip install MySQL-python时报错如下: Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/wk/541xl0m91gj7562sn0ddpjg9k8mh7p/T/pip-install-FF6W2Y/MySQL-python/ 解决方案:brew install mysqlbrew unlink mysqlbrew install mysql-co

JavaWeb快速入门Session&amp;Cookie代码思路篇(七)

Cookie练习 简介 尝试了n种分享代码,最终没有找到好办法.我觉得贴代码,很难看下去.还不如写思路,今后代码篇改成思路篇 Session代码练习 1. 购物车思路 1. ListBookServlet类 1.1 显示该网站所有商品,每个商品加上购买链接(BuyServlet) 用Map集合存储Book对象 map.put("1", new Book("1","JavaWeb开发","老张","一本好书"

【转】【量化课堂】kd 树算法之思路篇

导语:kd 树是一种二叉树数据结构,可以用来进行高效的 kNN 计算.kd 树算法偏于复杂,本篇将先介绍以二叉树的形式来记录和索引空间的思路,以便读者更轻松地理解 kd 树. 作者:肖睿 编辑:宏观经济算命师 本文由JoinQuant量化课堂退出,本文的难度属于进阶(上),深度为level-1. 阅读本文之前请掌握 kNN(level-1)的知识. 前言 kd 树(k-dimensional tree)是一个包含空间信息的二项树数据结构,它是用来计算 kNN 的一个非常常用的工具.如果特征的维度

四则运算2之设计思路篇

四则运算2之设计思路篇 对于四则运算程序的新要求: 1.题目避免重复: 2.可定制(数量/打印方式): 3.可以控制一下参数: 是否有乘除法.数值范围.加减有无负数.除法有无余数.是否支持分数(真分数,假分数,...) 要求一. 首先解决第一个要求:题目避免重复.第一件事就是优化得到随机数的算法,在每次生成算式的循环中,首先排除被除数为0的除法算式,将得到的算式分别赋给四个字符串数组,根据本次随机得到的运算符分别在四个字符串数组中进行比较,默认交换律得到的两个式子满足要求,可以作为交换律的考察.

Parameter index out of range(1 &gt; number of parameters, which is 0)参数索引超出范围

今天在写项目的过程中,有一个模块是做多选删除操作,通过servlet获得多选框的value组,然后执行sql操作.如下: 1 @RequestMapping( "/delteCouse.do" ) 2 public void delCouse( HttpServletRequest req, HttpServletResponse resp ) throws SQLException { 3 4 //处理中文 5 try { 6 req.setCharacterEncoding(&qu

解决Python3.6.5+Django2.0集成xadmin后台点击添加或者内容详情报 list index out of range 的错误

一 问题说明在创建Model的时候,如果存在类型是DateTimeField的字段,则在xadmin后端管理界面里,对该Model进行添加操作的时候,会报list index out of range. 这是上篇文章创建的Model: class IDC(models.Model): name = models.CharField(max_length=64) contact = models.CharField(max_length=32) phone = models.CharField(m