首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我试图编译我的代码时出错。

当我试图编译我的代码时出错。
EN

Stack Overflow用户
提问于 2014-12-22 11:36:34
回答 1查看 45关注 0票数 1

我试着把一个句子分成两个词,我试着用一些逻辑来解决这个问题。但是我的代码显示了一个错误

看这是我的代码:

代码语言:javascript
复制
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();
        }

    }

}

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

代码语言:javascript
复制
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at com.kavi.tasks.DiskSpace.main(DiskSpace.java:20)

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-22 11:38:00

你的问题是:

代码语言:javascript
复制
map.put(words[0], words[1]);

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

你应该这样处理:

代码语言:javascript
复制
String[] words=lines.split(":",2);
if (words.length > 1)
    map.put(words[0], words[1]);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27601948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档