Java 当我试图解析字符串时,我的应用程序崩溃

Java 当我试图解析字符串时,我的应用程序崩溃,java,android,multithreading,Java,Android,Multithreading,我试图解析一个字符串来计算产品的总价格,但当我使用“Integer.parseInt”时,我的应用程序崩溃了。 我知道我必须初始化字符串数组,因为指令“Integer.parseInt”无法解析空值,但我不知道我的数组元素是如何从拆分字符串中产生的。请帮帮我,伙计们。。。 我的代码: 类Thread2实现可运行的{//recieve @凌驾 公开募捐{ while(true){ 试一试{ 最终字符串消息=input.readLine(); 如果(消息!=null){ owner.runOnUiT

我试图解析一个字符串来计算产品的总价格,但当我使用“Integer.parseInt”时,我的应用程序崩溃了。 我知道我必须初始化字符串数组,因为指令“Integer.parseInt”无法解析空值,但我不知道我的数组元素是如何从拆分字符串中产生的。请帮帮我,伙计们。。。 我的代码:

类Thread2实现可运行的{//recieve
@凌驾
公开募捐{
while(true){
试一试{
最终字符串消息=input.readLine();
如果(消息!=null){
owner.runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
字符串[]a=message.split(“\\\\”);
int n=a.长度;

对于(int i=1;i请尝试此操作。默认情况下,P1使用值0,当数组在b[1]处有值且不为null时,仅从b[1]获取值

P1 = 0;
if(b.length() > 1){
    if(b[1] != null)
        P1=Integer.parseInt(b[1]);
}
....

请使用
try catch
处理ui块内的异常

    try {
        String[]    b =a[i].split("\\*");

        tee.append(b[0]+"                    "+b[1]+"\n");
        y.append(b[1]+"*");

        P1=Integer.parseInt(b[1]);

        //total = total+p1[i];
    } catch(Exception ex) {
    }
除此之外,您可以在
catch
块中使用
异常,而不是
IOException
来处理所有类型的异常并避免崩溃。谢谢

编辑方式如下:

     } catch (Exception e) {
           e.printStackTrace();
     }
而不是:

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

te.setText(“+Integer.toString(总计))
请为消息写入值,以便我们调试您的代码。在获取索引0和1之前,您需要检查b数组的长度是否至少为2。很可能您有IndexOutOfBoundsException。还有什么是y?是否已初始化?共享崩溃堆栈跟踪会很有帮助。请在拆分前后打印所有字符串。我很抱歉y、 但是我不懂你的英语。你能改写一下并用一些标点符号吗?