Java parseInt中的Numberformat异常

Java parseInt中的Numberformat异常,java,Java,我尝试了这段代码,得到了一个异常,任何人都可以帮助我。传递给函数的值是“12”,即使这样,我也得到了异常。我试过带/不带饰件等 公共类TestClass{ public static void main(String[] args) { try{ // TODO Auto-generated method stub String line = "12-10-1984"; String [] temp = line.split("-"); String t1

我尝试了这段代码,得到了一个异常,任何人都可以帮助我。传递给函数的值是“12”,即使这样,我也得到了异常。我试过带/不带饰件等

公共类TestClass{

public static void main(String[] args) {
    try{
    // TODO Auto-generated method stub
    String line = "12-10-1984";
    String [] temp = line.split("-");
    String t1 = temp[0].trim();
    Integer.parseInt(t1);
    }catch (Exception e){
        //e.printStackTrace();
        System.out.println(e.getMessage());
    }

}

}

您可以尝试像这样过滤字符串

String[] temp = line.split("-");
String t1 = temp[0].trim();
StringBuilder sb = new StringBuilder();
for (char ch : t1.toCharArray()) {
  if (Character.isDigit(ch)) {
    sb.append(ch);
  }
}
if (sb.toString().length() > 0) {
  int v = Integer.valueOf(sb.toString());
}
这两行中的“-”可能不匹配。 您可以打印t1的值并检查它是否返回“12”


当您从具有不同字符集的屏幕(例如Word/Outlook)复制字符串时,可能会发生这种情况。

哦,这些字符不是您想象的那样。”1�2.�-�1.�0�-�1.�9�8.�4"; 这真的是你的字符串吗?我不认为这真的是询问者的字符串,但在编辑中被引入;请参阅下面对其中一个答案的评论。远离的。用户3135635,请检查一下。我将它回滚到原始版本,只是为了不弄乱任何东西。@MichaelPetrotta如果您现在打开“编辑”,您不会看到字符吗?很抱歉,我没有得到它,我尝试了它,得到的结果是“这个字符(“”)不是数字,当转换为int时,它的值为0”。我不知道为什么它不起作用。如果可能的话,请您解释一下这种方法的必要性,以及为什么它不能直接识别字符串。您的字符串中有
nulls
(即“\0”个字符)。不,我没有。我刚刚输入了那个日期。“t1”的值是多少?