Java 输入字符串的NumberFormatException“;4018.B“;

Java 输入字符串的NumberFormatException“;4018.B“;,java,android,matcher,Java,Android,Matcher,下面的代码来自一个用于手持扫描仪设备的Android应用程序;设备应扫描不同的条形码和二维码、不同的数字范围、数字和数字 这就是为什么我决定使用.matcher而不是正则表达式;在解析“1367+700”等组合时,以下代码可以正常工作: 然而,应用程序崩溃了,出现了一个错误 java.lang.NumberFormatException: For input string: "4018.B" 因此,这里的问题是解析像“4018.B+95”这样的字符串 我不知道如何使用.m

下面的代码来自一个用于手持扫描仪设备的Android应用程序;设备应扫描不同的条形码和二维码、不同的数字范围、数字和数字

这就是为什么我决定使用.matcher而不是正则表达式;在解析“1367+700”等组合时,以下代码可以正常工作:

然而,应用程序崩溃了,出现了一个错误

 java.lang.NumberFormatException: For input string: "4018.B"
因此,这里的问题是解析像“4018.B+95”这样的字符串

我不知道如何使用.matcher处理这个混合输入字符串,而且我绝对不想使用正则表达式;因此,基本上,应正确处理以下所有输入字符串(包括类型转换):

1256+70

1235.B+70

1256+70+DB

1235.B+70+DB

1256+70+DB2020-123

1235.B+70+DB2020-123

1256+0+DB2020-123

1235.B+0+DB2020-123
所以,基本上我需要一个.matcher()的条件,它可以像

“1235.B”

混合整数和字符串;我需要将其存储在一个字符串类型的变量中; 这里的问题是“1235.B”中的“.”无法识别,因此应用程序崩溃,因为该数字包含字符串(“.B”)

这里有两个问题:

  • 如何使用.matcher()识别字符串是否包含“.B”或“.C”或任何类似内容

  • 如何在一个变量类型中正确处理不同的类型


  • 当我被困在这里时,我将非常感谢任何提示或帮助。

    这些.B“,.C”,“DB”“+”,“-”这些值在这里意味着什么?您知道类
    模式
    匹配器
    正在使用正则表达式。我的意思是,在这里使用它们可能没有什么错,但你坚持不使用正则表达式,我想你应该知道。@dinkar_kumar:“+”之前和“+”之后的字符串应该分开存储在variables@JoachimSauer:对,也许我把这个放错了;注意不要使用if(字符串匹配RegEx)然后{execute code},而是使用.matcher(表达式)来{execute code}。你在这方面还有什么提示或帮助吗?
    
    1256+70
    
    1235.B+70
    
    1256+70+DB
    
    1235.B+70+DB
    
    1256+70+DB2020-123
    
    1235.B+70+DB2020-123
    
    1256+0+DB2020-123
    
    1235.B+0+DB2020-123