- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
这是一个非常简单的代码块,使用 jre 1.6 运行时环境并在 64 位服务器 Server 2008 R2 中运行: ....
cntr = 0;
while (cntr < localheaders.size()) {
String tempText = textstring.toUpperCase();
int pos = 0;
int lastindx = 0;
int lendPos;
int tendPos = 0;
while ((pos > -1) && (tempText.length() > 0)) {
int headerLengthbeforeUpper = localheaders.get(cntr).header.length();
String aHeader = localheaders.get(cntr).header.toUpperCase();
int headerLengthafterUpper = aHeader.length();
pos = tempText.indexOf(aHeader);
// 10_21_2010
if (pos > 0) { // ef 07-10-2011
char c;
try {
c = tempText.charAt(pos - 1);
if (Character.isLetterOrDigit(c))
pos = -1;
} catch (Exception e) {
System.out.println("Value of pos->" + pos);
System.out.println("Length of the string->"
+ tempText.length());
System.out.println("header length before->"+headerLengthbeforeUpper);
System.out.println("header length after->"+headerLengthafterUpper);
e.printStackTrace();
}
}
........
我发现的是声明 pos = tempText.toUpperCase().indexOf(aHeader);
(大约 10 行)间歇性地设置为字符串 tempText
中大于字符串长度的值。这会导致 java.lang.StringIndexOutOfBoundsException
。索引始终在字符串实际长度的 100 以内。例如,在我今晚运行的测试中,对于长度为 24404 的字符串,pos
变量被设置为 24432。 header 长度在大写前后相同,以解决下面的评论之一。请注意,如果我连续两次在同一个文件上重新运行代码,则第二次不会发生错误。
一些附加信息:
Java version "1.6.0_20" Jav(TM) SE Runtime Environment (build 1.6.0_20-b02) Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
测试环境在 VMware Workstation 中运行。
我认为这是一个环境问题,给出错误的奇怪之处以及它只出现在我的 64 位测试环境中的事实。我试图找出问题的根源。有没有人,过去有过这种错误?是否有人知道与此特定 Java 构建相关的可能导致此类错误的错误?
关于如何解决这个问题有什么想法吗?
谢谢,
埃利奥特
最佳答案
看起来这个错误可能与您的问题有关:
关于Server 2008 r2 环境中的 Java StringIndexOutOfBounds 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12908192/
我试图编写一个程序,它从用户那里获取一个字符串,并告诉用户该字符串中小写字母、大写字母、空格等的数量。但我收到一条错误消息:StringIndexOutOfBound。 public class Ch
这是我的代码: public static String removeAdjDuplicates(String s) { if(s == "" || s == null || s.isEm
现在正在做我的 AP 计算机科学作业,但我遇到了运行时错误。有谁知道我的代码有什么问题吗?该程序在 Dr.Java 上运行良好,但在我的网站测试器上显示运行时错误... class Main{ pu
我遇到了摘要未显示的问题。我应该通过添加对象数组来修改以前的 Java 分配。在循环内,实例化每个单独的对象。确保用户无法继续添加超出数组大小的另一个外部转换。 用户从菜单中选择退出后,提示用户是否要
public String delDel(String str) { if (str.length() value.length) { throw new StringIndex
import java.util.Scanner; public class s { public static void main(String[] args) {
我正在做一些在线编码项目,试图学习编程并提高我的技能。当前项目的目标是首先找出二进制中哪个以 2 为基数的数字与另一个数字匹配。我可能没有正确解释这一点。 例如,如果我的二进制字符串为 10010 和
我这里有两个完全相同的代码副本,除了一个在 for 循环中有“<”而另一个有“<=”。有人能解释一下为什么我在使用“<=”时会出现索引越界异常,但随后它可以与“<” 一起正常工作吗 错误代码: for
我正在编写一个程序来计算: 1^1 + 2^2 + 3^3 + ... + 1000^1000 = ? 一旦它计算出来,我想删除答案中除最后十位数字之外的所有数字,然后在屏幕上打印最后十位数字。要删除
import java.io.*; public class runner{ //Translates from infix to postfix //Evaluates the postfix ex
通过运行一个在远程服务器上运行命令的简单代码,如下: if (s.contains("CONNECTED") || s.endsWith("Enter command: ") || s.endsWit
在我的代码中,我有一个 while 循环,其中嵌套了 3 个 IF 测试,这些测试具有由 ELSE 触发的标志: [test1]检查输入值的长度是否正好为1[防止用户不输入任何内容] [test2]
有人可以帮我吗,我编写了这个应用程序,但它不起作用,而且我找不到解决方案。 第一个错误:由 java.lang.IllegalStateException 引起:无法执行 Activity 的方法 第
我有一个程序,它接受两个字符串参数,并根据它们的索引将它们视为 int,并尝试像我们在纸上所做的那样进行加法,但我收到 java.lang.StringOutOfBounds Exception ,我
我在这部分代码中遇到 StringIndexOutOfBounds 异常。 捕获 myList 的字段在 UI 中是可选的。只有当 myList/myURL 字符串为空时才会出现此错误。我该如何处理?
这是一个非常简单的代码块,使用 jre 1.6 运行时环境并在 64 位服务器 Server 2008 R2 中运行: .... cntr = 0; while (cnt
我是一名优秀的程序员,十分优秀!