java - 当我尝试编译代码时发生错误

标签 java

我尝试将一个句子分成两个单词,我尝试了一些解决方案的逻辑。但我的代码显示错误
看这是我的代码:

import com.eg.*;
import java.util.*;
import java.io.*;

public class DiskSpace {


    public static void main(String[] args) {
        try
        {
            HashMap map=new HashMap();
            Process p=Runtime.getRuntime().exec("cscript C:\\eGurkha\\lib\\vmgfiles\\win\\eg_diskspace.vbs");
            BufferedReader rd=new BufferedReader(new InputStreamReader(p.getInputStream()));
            String lines=rd.readLine();

            while(lines!=null)
            {
                String[] words=lines.split(":",2);
                map.put(words[0], words[1]);
                lines=rd.readLine();                
            }
            System.out.println(map.size());
            Iterator it=map.entrySet().iterator();
            while(it.hasNext())
            {
                Map.Entry str=(Map.Entry)it.next();
                System.out.println(str.getKey());
                System.out.println(str.getValue());
            }


        }
        catch(IOException e)
        {
            e.printStackTrace();
        }

    }

}

当我编译上面的代码时,它显示如下错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at com.kavi.tasks.DiskSpace.main(DiskSpace.java:20)

我找不到错误,你能帮我吗...

最佳答案

您的问题在这里:

map.put(words[0], words[1]);

如果 words 只有一个元素(即您尝试拆分的字符串中没有“:”),words[1] 将抛出该异常。

你应该这样处理:

String[] words=lines.split(":",2);
if (words.length > 1)
    map.put(words[0], words[1]);

关于java - 当我尝试编译代码时发生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27601948/

相关文章:

java - 在文本上设置鼠标单击事件?

Java(外汇): How can I edit the menu items of the standard mac os x menu bar?

c# - Android C2DM 服务器端

java - 在java中关闭期间删除文件

Java排序——全部大写优先

java - 无法通过java sdk在谷歌云存储中连接和创建存储桶

java - 尝试获取对象的 y 坐标时无法解决 NullPointerException

java - 检查该数字是否能同时被 3 和 7 整除,或者不能被它们整除

java - 附近找不到地理空间和Morphia

java - 是否可以加入两个 Java 8 流?