永发信息网

请问我这个java程序那错了?我实在是不知道呀

答案:5  悬赏:20  手机版
解决时间 2021-03-20 09:44
package com.bt12;
import java.io.*;
public class Bt12_2 {

private static final String BLANKS=" ";

public static void main(String[] args) {
// TODO Auto-generated method stub
String inFile="D:\\BA\\Alice.txt";
int width=40;
System.out.println("Reading from:\t"+inFile);
System.out.println("Right justifying in a field of width:\t"+width);
FileReader fr;
try {
fr = new FileReader(inFile);
BufferedReader br=new BufferedReader(fr);
String line=null;
while((line=br.readLine())!=null){
int len=line.length();
System.out.println(space(width-len)+line);
}
br.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

private static String space(int n) {
// TODO Auto-generated method stub
return BLANKS.substring(0,n);
}

}
提示错误:
java.lang.StringIndexOutOfBoundsException: String index out of range: 23
at java.lang.String.substring(Unknown Source)
at com.bt12.Bt12_2.space(Bt12_2.java:34)
at com.bt12.Bt12_2.main(Bt12_2.java:20)
Reading from: D:\BA\Alice.txt
Right justifying in a field of width: 40

这个程序主要是,右对齐一个文件对于一个给定的文件inFile,以及一个给定的整数n,程序打印相同的文本,但没行的有段位于第n列。请问我该怎么改呢?
最佳答案
看出错的信息,应该是字符串下标越界,在space方法
全部回答
StringIndexOutOfBoundsException 下标越界了。你可以用debug模式测试一下,看看具体情况。
提示的异常显示:String下标越界。你的space函数有问题(注意其中的n的取值)。
BLANKS 自始至终就是一个空格的字符串,你再程序中没有看到在哪里给它另外赋值,在space方法中,调用BLANKS.substring(0,n);截取字符串时,n的数值比BLANKS字符串的长度大,就会引发StringIndexOutOfBoundsException异常,n的数值只能小于等于BLANKS.length()
return BLANKS.substring(0,n); 这句话 的意思是 取 BLANKS的子串 。 BLANKS的值是 “ ”, 如果这个函数第二个参数如果大于了BLANKS的长度,就会报错,
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
老城里包子地址在哪,我要去那里办事
水馒头的做法 水馒头怎么做 水
求好看的奖杯图片,不要世界杯
天下3太虚六个通灵兽用处介绍
头七和尾七死去的人灵魂会回家吗?
嫩江路停车场(嫩江路15号附近嫩江路停车场)地
西环城路房产交易中心产权证能更名吗
键努热保健品养生会所我想知道这个在什么地方
梦到鬼给家人过生日预示着什么
结合闻一多、徐志摩的作品,谈新格律诗派的诗
PS相片 大小80K以内;格式JPEG/GIF/JP
酒后过24小吋后验出来了么i
海味的干货有哪些品种?
哪家银行信用卡分期付款手续费(或利息)低?
毛里求斯有什么特产?
推荐资讯
横行跋扈是什么意思
70码在浦东金桥立交过来快上杨浦大桥时 杨高
屏风:让空间藏而不露阅读答案
阅读下面两段文字,完成12—14题。(8分)若
击退,击飞,还是什么效果
吉安市人民银行在哪里
晴儿特色店在哪里啊,我有事要去这个地方
宫颈鳞形细胞癌早期未扩散能治好吗
未成年人独自去联通营业厅办理手机业务 但机
求近几年比较好的欧美R级(名字就行)
空调 输入功率660 制冷量2390 房间面积15平方
钢结构材料表中PL是什么意思.
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?