gpt4 book ai didi

java - 如何确定字符串中包含的数据类型?

转载 作者:行者123 更新时间:2023-12-02 07:42:05 27 4
gpt4 key购买 nike

我有一个接受字符串参数的方法。

字符串可以包含整数、长整型、 double 型、 boolean 型或只是普通的旧字符和数字。

我需要一种简单的方法来确定字符串的类型。

一种方法可能是使用一堆 try catch block 并尝试将其解析为每种类型,如果抛出异常,则它可能不是该数据类型。这似乎是错误的,因为它是一个启发式程序,而不是一个确定性程序。

最佳答案

我认为通常假设您需要知道它是什么 - 通常这些参数要么是已知的,要么带有一些元数据。您始终可以使用正则表达式来查找标记,例如数字和句号。

有用的模式:

Pattern.compile("(?:\\+|\\-)?\\d+\\.\\d+");` // Matches a double.
Pattern.compile("(?:\\+|\\-)?\\d{numberOfDigitsBeforeYouWantToCallItALong,}"); // Matches longs.
Pattern.compile("(?:\\+|\\-)?\\d{,numberOfDigitsBeforeYouWantToCallItALongMinusOne}"); // Matches ints.
Pattern.compile("true|false|t|f|yes|no|y|n"); // Matches booleans.

其他都是字符串。

编辑:从您的编辑中我看到您已经添加了它的使用方式,您可以使用 "(?:\\+|\\-)?\\d+" 来检测数字,如果您的目标类型是 int 或 long,请接受它并将其解析为目标类型,而不是基于位数。或者您可以尝试直接解析为适当的类型并捕获Exception,因为您无论如何都知道预期的类型。

关于java - 如何确定字符串中包含的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11447583/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com