Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我试图从字符串中删除奇数字符(请检查下面的程序),我得到一个异常 import java.util.*; 导入java.io.*; 导入java.lang.*; 公共类测试器{ 公共静态void main(字符串a[]{ 字符串s; 内伦; 扫描仪sc=新的扫描仪(System.in); s=sc.nextLine(); StringBuffer sb=新的StringBuffer; int i=1; len=sb.length(); len=len-1; while(i_Java_Char_String Length_Stringbuffer - Fatal编程技术网

我试图从字符串中删除奇数字符(请检查下面的程序),我得到一个异常 import java.util.*; 导入java.io.*; 导入java.lang.*; 公共类测试器{ 公共静态void main(字符串a[]{ 字符串s; 内伦; 扫描仪sc=新的扫描仪(System.in); s=sc.nextLine(); StringBuffer sb=新的StringBuffer; int i=1; len=sb.length(); len=len-1; while(i

我试图从字符串中删除奇数字符(请检查下面的程序),我得到一个异常 import java.util.*; 导入java.io.*; 导入java.lang.*; 公共类测试器{ 公共静态void main(字符串a[]{ 字符串s; 内伦; 扫描仪sc=新的扫描仪(System.in); s=sc.nextLine(); StringBuffer sb=新的StringBuffer; int i=1; len=sb.length(); len=len-1; while(i,java,char,string-length,stringbuffer,Java,Char,String Length,Stringbuffer,这是因为每次删除一个字符时,字符串的长度都会减少1,并且您仍在迭代,直到达到原始长度。请在代码中应用以下更改,以便i的值不会超出字符串的当前长度,并且的条件满足直到有效长度: import java.util.*; import java.io.*; import java.lang.*; public class Tester { public static void main(String a[]) { String s; int

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

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);

     }

 }

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

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);

     }

 }

while(i问题是每次调用deleteCharAt时,它都会将sb长度减去1,因此在某个点i=7,但sb长度是5,我们将在i=7处删除索引,这会导致您看到的索引越界异常。

您可以将长度减少1以在循环中解决此问题。len=len-1

问题是每次调用deleteCharAt时,它都会将sb长度减少1,因此在某个点i=7,但sb长度是5,我们将删除i=7处的索引,这将导致您看到的索引越界异常。
您可以将长度减少1以修复循环中的此问题。len=len-1

您正在尝试删除索引中不存在的字符。您正在尝试删除索引中不存在的字符。