2012-08-30 56 views
0

我不知道为什么,但如果我使子字符串应用程序崩溃!子字符串崩溃

下面的代码:

while(data_mio.moveToNext()) 
{ 
    titolo_da_inserire=data_mio.getString(prodotto); 
    titolo_da_inserire=titolo_da_inserire.substring(0,35)+"..."; 
    personList.add(new Prodotto_per_lista(
         R.drawable.freccia_1, titolo_da_inserire, 
         Integer.parseInt(data_mio.getString(id_immagine))) 
       ); 
} 
+0

你确保你的字符串titolo_da_inserire的最小长度为35个字符? –

+0

不知道......这也许是问题所在?在PHP这不是一个问题,但在这里它可能是..让我检查 – Zak

+0

崩溃后发布stacktrace –

回答

0

实际声明一样,

String titolo_da_inserire = ""; 

现在,使用subString()检查字符串titolo_da_inserire的长度

if(titolo_da_inserire.length() >= 35) 
titolo_da_inserire = titolo_da_inserire.substring(0,35)+"..."; 
else 
titolo_da_inserire = titolo_da_inserire.substring(0,titolo_da_inserire.length())+"..."; 
+0

还有一件事:检查字符串是否为空... –

+0

@BorisStrandjev - 只检查'空'左.. ..空字符串将是'长度为0'。 – user370305

+0

对不起,我误解了你的代码。但是,实际上,对我来说有意义的是: 'if(titolo_da_inserire.length()> = 35) titolo_da_inserire = titolo_da_inserire.substring(0,35)+“...”; else titolo_da_inserire = titolo_da_inserire.substring(0,titolo_da_inserire.length())+“...”; ' –

0

如果您前字符串具有小于35那么它会抛出java.lang.StringIndexOutOfBoundsException那的路您的应用程序崩溃

样品

String st ="string"; 

st = st.substring(0,15); // throws exception String index out of range 

System.out.println(st); 

,所以你需要做的长度的检查

if(st.length()>15) 

{ 

st = st.substring(0,15); 

System.out.println(st); 

}