A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马超 中级黑马   /  2012-5-24 15:45  /  1434 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 依然小马哥 于 2012-5-24 16:19 编辑

package com.itcast.String;
将字符串进行反转  
为什么我写的代码总是出现数组角标越界异常呢??
错误提示:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7

下边是我写的代码,求助啊。。
public class StringDemo02
{
public static void sop(String str)
{
  System.out.println(str);
}

public static String reverseString(String str)
{
  char[] arr = str.toCharArray();
  //反转数组:
  reverse(arr);
  
  return new String(arr);
}

private static void reverse(char[] arr)
{
  for(int start = 0,end = arr.length-1;start<end;start++,end++)
  {
   swap(arr,start,end);
  }
  
}

private static void swap(char[] arr,int x,int y)
{
  char temp = arr[x];
  arr[x] = arr[y];
  arr[y] = temp;
}

public static void main(String[] args)
{
  String str = "abcdegf";
  sop(str);
  sop(reverseString(str));
  
}

}

2 个回复

倒序浏览
for(int start = 0,end = arr.length-1;start<end;start++,end++)

应该改成 for(int start = 0,end = arr.length-1;start<end;start++,end--)
楼主粗心了
回复 使用道具 举报
jxj4227982333 发表于 2012-5-24 16:10
for(int start = 0,end = arr.length-1;start

唉。。就是啊,真是大意啊~~:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马