首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓系统中的StringIndexOutOfBoundsException

安卓系统中的StringIndexOutOfBoundsException
EN

Stack Overflow用户
提问于 2012-03-20 13:34:32
回答 1查看 7.7K关注 0票数 2

我收到以下错误:

代码语言:javascript
复制
    java.lang.StringIndexOutOfBoundsException: length=13243; regionStart=32; regionLength=-39
    at java.lang.String.startEndAndLength(String.java:593)
    at java.lang.String.substring(String.java:1474)
    at com.dict.XMLParser.getResultFromXML(XMLParser.java:63)
    at com.dict.InternetDictProvider.searchWord(InternetDictProvider.java:29)
    at com.dict.SearchDict$SearchOnline.doInBackground(SearchDict.java:130)
    at com.dict.SearchDict$SearchOnline.doInBackground(SearchDict.java:1)
    at android.os.AsyncTask$2.call(AsyncTask.java:264)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at java.lang.Thread.run(Thread.java:856)

在以下代码中,通常在将作为HttpResponse给出的XML页面解析为HttpGet后获得结果:

代码语言:javascript
复制
        retry:
        {
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet("http://oxforddictionaries.com/definition/"+query+"?q="+query);
            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            String meanings=parser.getResultFromXML(StringUtils.inputStreamToString(httpEntity.getContent()));
            if(meanings==null && firstRetry)
            {
                firstRetry=false;
                query = query.substring(0, 1).toUpperCase() + query.substring(1);
                break retry;
            }
            else if(meanings==null && !firstRetry)
                return query;
            result = query + ":" + meanings;
        }
EN

Stack Overflow用户

回答已采纳

发布于 2012-03-20 13:39:27

代码语言:javascript
复制
 query = query.substring(0, 1).toUpperCase() + query.substring(1);

我认为这个语句创建了exeption,所以使用if(null!=query&&query.length()!=0){query=...}

如果你子串你的字符串length more than 1 in your case

票数 6
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9781802

复制
相关文章

相似问题

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