2013-07-13 28 views
0

即时通讯启动器在Java中,所以如果有人用简单的方式回答我的问题,我会很高兴。 我尝试用最大的进口来计算最大:秒,但它给了我错误:(使用数学导入计算最大值

这里是脚本:

package Calc; 

import java.lang.Math.*; 

public class Calculator { 

    public static void main(String[] args) 
    { 
     int n1,n2; 
     String s="10 , 20"; 
     //converting strings to integers 
     String s1=s.substring(3,s.length()); 
     String [] s2=s1.split(","); 
     n1=Integer.parseInt(s2[0]); 
     n2=Integer.parseInt(s2[1]); 

     //max 
     int maxstock = Math.max(n1 , n2); 
     System.out.println(maxstock); 

    } 
} 

以下是错误的IntelliJ IDEA给出:

异常在线程“main”java.lang.NumberFormatException:对于输入字符串:“” at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) at java.lang.Integer.parseInt(Integer.java:468) 在ja va.lang.Integer.parseInt(Integer.java:497) at Calc.Calculator.main(Calculator.java:16) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution .application.AppMain.main(AppMain.java:120)

过程,退出代码1

完成(ⅰ转换后的字符串为整数,而不是用它直接引起,这是一类的工作,它必须是这样的)

回答

0
String s1=s.substring(3,s.length()); 

,让你s1", 20"

String [] s2=s1.split(","); 

分裂s1在逗号,你s2[0] = ""s2[1] = " 20"

n1=Integer.parseInt(s2[0]); 

导致

异常在线程 “主” java.lang.NumberFormatException:对于输入字符串: “”

因为空字符串不能被解析为int

你也许打算

String [] s2=s.split(","); 

来分割整个字符串"10 , 20"

但是,你仍然会得到一个NumberFormatException,因为Integer.parseInt不接受它试图解析的字符串中的任何空格。