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