这个代码数组越界 为什么?

nospot 2007-12-19 10:51:46
package com.cn.test;
public class Test{
String[] list;
StringBuffer sb = new StringBuffer();
int start;
Test(String in){
list = in.split(",");
printList();
System.out.print(sb);
}
void replaceStr(int c1,int c2){
String temp = list[c1];
list[c1] = list[c2];
list[c2] = temp;
}
void printList(){
if(start==list.length-1)
for(int i=0;i <list.length;i++)
sb.append(list[i]+(i==list.length-1?"\n":","));
else
for(int i=start;i <list.length;i++){
replaceStr(start++,i);
printList();
replaceStr(i,--start);
}
}
public static void main(String args[]){
new Test(args[0]);

}
}

而且debug会产生source not found ??????
...全文
144 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuode_001 2007-12-20
  • 打赏
  • 举报
回复
public class TestMain {

/**
* @param args
*/
public static void main(String[] args) {

// TODO Auto-generated method stub
if(args.length!=0)
for (int i = 0; i < args.length; i++)
System.out.println(args[i]);
else
System.out.println("没有参数,长度为:"+args.length);
}
}

//希望对你有用
xukejun_BabyY 2007-12-19
  • 打赏
  • 举报
回复
7楼的方法,在eclipse中带参数执行 正解
zhuode_001 2007-12-19
  • 打赏
  • 举报
回复
在eclipse中带参数执行
Run菜单-->Run-->Arguments选项卡
在Program arguments中输入参数
多个参数以空格作为分隔符
longrm 2007-12-19
  • 打赏
  • 举报
回复
在eclipse的话没法带参数的,使用Scanner读取用户输入吧

Scanner sc = new Scanner(System.in);
new Test(sc.nextLine());
DirectRay 2007-12-19
  • 打赏
  • 举报
回复
是的,从dos下调试的时候要添加参数。
victoryzll 2007-12-19
  • 打赏
  • 举报
回复
if(start==list.length-1)
start之前赋值 了???
nospot 2007-12-19
  • 打赏
  • 举报
回复
2楼的 问下 在eclipse中执行怎么带参数?我越界了怎么改?
xukejun_BabyY 2007-12-19
  • 打赏
  • 举报
回复
楼上正解
执行时没有带上参数,java Test aaa bbb ccc
nospot 2007-12-19
  • 打赏
  • 举报
回复
new Test(args[0]);
这句产生的数组越界
longrm 2007-12-19
  • 打赏
  • 举报
回复
回楼上的,args[]数组是执行时带用户参数时这个参数数组,如:

java Test aaa bbb ccc

那么args[]={"aaa", "bbb", "ccc"};
不懂编程 2007-12-19
  • 打赏
  • 举报
回复
args在哪给的值呀

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧