我尝试将一个句子分成两个单词,我尝试了一些解决方案的逻辑。但我的代码显示错误
看这是我的代码:
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/