是否可以忽略Float :: = HexFloat并且只能看到数字字符?

时间:2011-09-26 16:34:57

标签: java

我正在尝试使用hasNextDouble解析字符串值“87306E107”。此值是一个字符串,在使用hasNextDouble时应返回false,但返回true。我想知道是否有可能让这个方法返回false?我想将此值视为字符串的原因是因为我必须将其包装在单引号中以构建动态数据库插入语句。以下是我的代码:

String data = "87306E107,27.1,xyz,123,01449J204";
Scanner scanner = new Scanner(data);
scanner.useDelimiter(",");

if (!scanner.hasNextInt() && !scanner.hasNextDouble()){
    if (DateUtils.isDate(data)){
        //Format date to correct layout
        data = DateUtils.parseStringDate(data, "yyyy-MM-dd", 0);
    }
    //Escape any single quotes
    data = data.replaceAll("'", "''");
    //Wrap in single quotes
    data = "'" + data + "'";
}

1 个答案:

答案 0 :(得分:1)

您可以尝试使用字符串匹配器而不是hasNextDouble()

scanner.hasNext("\\d+(\\.\\d+)?")