为了账号安全,请及时绑定邮箱和手机立即绑定

从java文件中拆分字符串?

从java文件中拆分字符串?

有只小跳蛙 2021-11-03 14:13:07
文件的字符串:    insert ignominious    insert elephant    insert judicious    insert bastion    insert fastidious    insert generous    insert hilarious    insert astute    insert degenerate    insert courageous    traverse    remove judicious    remove ignominious     当一行中有两个单词时,我的代码会拆分字符串,但是当它转到“遍历”时,它会给出一个 OutOfBounds 错误,因为它只是一个单词。我不确定您是否需要检查该行上是否只有一个单词才能不拆分以及如何进行拆分。BufferedReader in = new BufferedReader(new FileReader("file.txt"));String str;while ((str = in.readLine()) != null) {    String[] strArr = str.split(" ");    if(strArr[1]!=null)        System.out.println(strArr[0] + ", "+strArr[1]);    else        System.out.println(strArr[0]);}in.close();
查看完整描述

2 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

正如@markspace 所说,您应该只检查数组的长度。


 while ((str = in.readLine()) != null) {

     String[] strArr = str.split(" ");

        if(strArr.length > 1)

             System.out.println(strArr[0] + ", "+strArr[1]);

        else

            System.out.println(strArr[0]);

}

如果这个想法是只打印这样的名字,你可以这样做:


while ((str = in.readLine()) != null) {

    String[] strArr = str.split(" ");

    System.out.println(String.join(", ", strArr));

}


查看完整回答
反对 回复 2021-11-03
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

我认为这是解决更大问题的一步。很高兴您开始通过实现代码来解决这个问题,只读取文件并打印出您解析的命令。像这样将较大的问题分解为较小的问题是计算机程序员的一项重要技能。但是,在这种情况下,您的简化忽略了有关输入的详细信息:有些命令有参数,有些没有。

一种解决方案是strArr[0]在尝试使用strArr[1]. 此命令确定是否需要任何其他参数。例如,如果strArr[0]is "insert",那么您知道会有一个参数。但是,如果是"traverse",则不应该有任何参数,并且您不应该尝试访问,strArr[1]因为您知道它不存在。


查看完整回答
反对 回复 2021-11-03
  • 2 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信