gpt4 book ai didi

java - InputStream 方法中的 OutOfBoundsException

转载 作者:行者123 更新时间:2023-12-01 23:01:55 24 4
gpt4 key购买 nike

我正在编写一个程序来删除单词中的重复字母,但它在第 22 行显示越界错误,我无法弄清楚问题是什么。代码如下

import java.io.*;
public class p23
{
public static void main(String args[])throws IOException
{
String inp , z = "" ;
int len , i ,j , l;
char x ,y ;
InputStreamReader read=new InputStreamReader(System.in);
BufferedReader in=new BufferedReader(read);
System.out.println("Enter a string");
inp = in.readLine();
inp = inp + ' ';
len = (inp.length())-1;
for (i=0;i<=len;i++)
{
x = inp.charAt(i);
z = z + x ;
l = i + 1 ;
for ( j=i ; j<len ; j++)
{
y = inp.charAt(j);
if(x==y)
continue;
else
z = z + y;
}
inp = z ;
z = " " ;
if (inp.charAt(l)==' ')
break ;
}
System.out.println("new String "+inp);
}
}

请提出一个选项

最佳答案

在 for() 循环结束之前,i值为 len 。然后你设置l = i + 1这是越界的,稍后再获取 inp.charAt(l) 。就是这样。

经过进一步调查(我没有在 IDE 中运行该程序,只是阅读了你的代码),我观察到了我猜测的真正原因。看inp = z对于 i 的每次迭代。当i随着增长,z变得越来越短,因为它以" "开头。 ,连接一个x其余len - i 。这将比您的 l 短,这将是一个及时的人 len + 1或至少lenl的值与 inp 的变化不同步在 i 的每次迭代中循环。

关于java - InputStream 方法中的 OutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23293060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com