gpt4 book ai didi

java - 我试图从字符串中删除奇怪的字符(请检查下面的程序)我收到一个异常

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

import java.util.*; 
import java.io.*;
import java.lang.*;

public class Tester {

public static void main(String a[]) {

String s;

int len;
Scanner sc=new Scanner(System.in);

s=sc.nextLine();

StringBuffer sb=new StringBuffer(s);

int i= 1;

len= sb.length();

len=len-1;

while(i<=len)
{
sb.deleteCharAt(i);

i=i+2;
}
System.out.println(sb);

}

}

i/p:

abcdefghi

输出:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 7 at java.lang.AbstractStringBuilder.deleteCharAt(AbstractStringBuilder.java:824) at java.lang.StringBuffer.deleteCharAt(StringBuffer.java:441) at Tester.main(Tester.java:29)

最佳答案

这是因为每删除一个字符,字符串的长度就会减少 1,而你仍然会迭代直到原始长度。在代码中应用以下更改,以便 i 的值不会超出 String 的当前长度,并且 while 条件满足直到有效长度:

while(i<=len)
{
sb.deleteCharAt(i);
i=i+2;
len--;
}

关于java - 我试图从字符串中删除奇怪的字符(请检查下面的程序)我收到一个异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52169192/

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