最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文帶你掌握J(rèn)ava判斷字符串是否為數(shù)字的5種實現(xiàn)方法

 更新時間:2026年03月26日 09:24:29   作者:飛算JavaAI開發(fā)助手  
這篇文章主要為大家詳細(xì)介紹了Java判斷字符串是否為數(shù)字的5種實現(xiàn)方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,大家可以根據(jù)需要進(jìn)行選擇

方法一:用JAVA自帶的函數(shù)

方法一通過遍歷字符串的每一個字符,并使用Character.isDigit()函數(shù)檢查每一個字符是否是數(shù)字。如果字符串中所有字符都是數(shù)字,那么這個方法就會返回true。但是,如果字符串中含有非數(shù)字字符,它就會立即返回false。

這種方法簡潔明了,但可能過于嚴(yán)格,因為它認(rèn)為像"123 "這樣的字符串(末尾包含空格)不是數(shù)字。

public static boolean isNumeric(String str){
    for (int i = str.length();--i>=0;){
        if (!Character.isDigit(str.charAt(i))){
            return false;
        }
    }
    return true;
}

方法二:通過正則表達(dá)式

方法二通過正則表達(dá)式檢查字符串是否只包含數(shù)字。它匹配所有以正則表達(dá)式["^[-+]?[\d]*$"]開始的字符串,這個正則表達(dá)式表示字符串的開始可以是正負(fù)號,后面跟隨任意數(shù)量的數(shù)字。但是,它認(rèn)為像"123 "這樣的字符串是整數(shù),而實際上" "不是數(shù)字的一部分。

/*
* 判斷是否為整數(shù)
* @param str 傳入的字符串
* @return 是整數(shù)返回true,否則返回false
*/
public static boolean isInteger(String str) {
Pattern pattern = Pattern.compile("^[-\+]?[\d]*$");
return pattern.matcher(str).matches();
}

方法三:FuncGPT(慧函數(shù))自動生成

方法三使用Double.parseDouble()方法嘗試將字符串轉(zhuǎn)換為雙精度浮點數(shù)。轉(zhuǎn)換成功,說明字符串是數(shù)字,返回true;轉(zhuǎn)換失敗,說明字符串不是數(shù)字,返回false。

這個代碼段包括一個注解 @MethodDesc,用于描述這個方法的一些信息,包括它的描述(desc)和參數(shù)(params)。參數(shù)描述也是一個數(shù)組,其中每個元素都有一個名字(name)和描述(desc)。這種注解通常用于生成API文檔或者用于某些IDE的代碼提示功能。

這個 isNumeric 方法的設(shè)計思路是合理的,可以滿足大部分場景的需求。但是,需要注意的是,由于 Double.parseDouble() 方法可以將諸如 "3.14" 這樣的字符串解析為有效的浮點數(shù),因此,該方法可能對于嚴(yán)格意義上的“數(shù)字”定義有些寬松。如果你需要更精確的定義(例如,只接受整數(shù)值或者只接受具有特定小數(shù)位數(shù)的浮點數(shù)),你可能需要自定義一個更復(fù)雜的方法來檢查字符串。

總的來說,這是一個簡單、明了的方法,可以有效地檢查一個字符串是否可以解析為數(shù)字。

package com.feisuanyz.function;
import com.feisuanyz.flow.core.cmpt.annotation.function.MethodDesc;
import com.feisuanyz.flow.core.cmpt.annotation.function.ParamDesc;
public class StringNumberChecker {
@MethodDesc(desc = "判斷字符串是否為數(shù)字",
params = {
@ParamDesc(name = "str", desc = "要判斷的字符串"),
})
public static boolean isNumeric(String str) {
        if (str == null || str.isEmpty()) { // 檢查字符串是否為空
            return false;
        }
        try {
            Double.parseDouble(str); // 使用Double.parseDouble()方法嘗試將字符串轉(zhuǎn)換為double
            return true; // 轉(zhuǎn)換成功,字符串是數(shù)字
        } catch (NumberFormatException e) {
            return false; // 轉(zhuǎn)換失敗,字符串不是數(shù)字
        }
    }
}

方法四:先檢查字符串是否為空或者只包含空格

方法四首先檢查字符串是否為空或者只包含空格,如果滿足條件則返回false。然后它使用String的matches()方法檢查字符串是否符合正則表達(dá)式"^[0-9]*$",這個正則表達(dá)式表示字符串僅由0-9的數(shù)字組成。這個方法考慮了空字符串和空格,但在遇到像"123 "這樣的字符串時,仍然會認(rèn)為是數(shù)字。

public final static boolean isNumeric(String s) {
if (s != null && !"".equals(s.trim()))
return s.matches("^[0-9]*$");
else
return false;
}

方法五:用ascii碼

這個方法通過檢查字符串中每個字符的ASCII碼來判斷是否為數(shù)字。如果字符的ASCII碼不在48('0')和57('9')之間,它就立即返回false。這種方法非常簡潔,但也非常嚴(yán)格,它將認(rèn)為像"123 "這樣的字符串不是數(shù)字,盡管" "是數(shù)字的一部分。

public static boolean isNumeric(String str){
for(int i=str.length();--i>=0;){
int chr=str.charAt(i);
if(chr<48 || chr>57)
return false;
}
return true;
}

綜上,這些方法都有其優(yōu)點和缺點,選擇哪種方法取決于你的具體需求和對"數(shù)字"的定義。

FuncGPT(慧函數(shù))是全棧式自動開發(fā)工具SoFlu軟件機(jī)器人上線的最新功能,專注于AI生成Java函數(shù),通過自然語言描述Java函數(shù)需求,實時生成高質(zhì)量、高可讀性的Java函數(shù)代碼。生成代碼可直接復(fù)制到IDEA,或一鍵導(dǎo)入Java全自動開發(fā)工具函數(shù)庫。

知識擴(kuò)展

java工具sx 判斷字符串是否是數(shù)值型,包括負(fù)數(shù)、0、正整數(shù)、浮點數(shù) 等

方法1:使用org.apache.commons.lang3.StringUtils

@Test
void judgeStringType()  {
    String s0 = "123";
    String s1 = "adb123";
    String s2 = "-1";
    String s3 = "0";
    String s4 = "3.1415926";
    System.out.println("判斷s0是否為數(shù)值類型:" + StringUtils.isNumeric(s0)); //true
    System.out.println("判斷s1是否為數(shù)值類型:" + StringUtils.isNumeric(s1)); //false
    System.out.println("判斷s2是否為數(shù)值類型:" + StringUtils.isNumeric(s2)); //false
    System.out.println("判斷s3是否為數(shù)值類型:" + StringUtils.isNumeric(s3)); //true
    System.out.println("判斷s4是否為數(shù)值類型:" + StringUtils.isNumeric(s4)); //false
}

測試結(jié)果表明:使用org.apache.commons.lang3.StringUtils,判斷字符串是否是數(shù)值類型,數(shù)值只能判斷0~正整數(shù),有一個缺陷,負(fù)數(shù)和浮點數(shù)未正確判斷,比如-1判斷為false

測試方法2:采用正則表達(dá)式匹配,優(yōu)點:除字符串外都能匹配

@Test
void judgeStringType2()  {
    Pattern pattern = Pattern.compile("-?\\d+(\\.\\d+)?");
    String s0 = "123";
    String s1 = "adb123";
    String s2 = "-1";
    String s3 = "0";
    String s4 = "3.1415926";
    System.out.println("判斷s0是否為數(shù)值類型:" + pattern.matcher(s0).matches()); //true
    System.out.println("判斷s1是否為數(shù)值類型:" + pattern.matcher(s1).matches()); //false
    System.out.println("判斷s2是否為數(shù)值類型:" + pattern.matcher(s2).matches()); //true
    System.out.println("判斷s3是否為數(shù)值類型:" + pattern.matcher(s3).matches()); //true
    System.out.println("判斷s4是否為數(shù)值類型:" + pattern.matcher(s4).matches()); //true
}

測試結(jié)果表明:采用正則表達(dá)式匹配,優(yōu)點:除字符串外都能匹配,推薦使用第二種方法。

到此這篇關(guān)于一文帶你掌握J(rèn)ava判斷字符串是否為數(shù)字的5種實現(xiàn)方法的文章就介紹到這了,更多相關(guān)Java判斷字符串是否為數(shù)字內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java多線程關(guān)鍵字final和static詳解

    java多線程關(guān)鍵字final和static詳解

    這篇文章主要介紹了java多線程關(guān)鍵字final和static詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • SpringBoot項目從搭建到發(fā)布一條龍

    SpringBoot項目從搭建到發(fā)布一條龍

    這篇文章主要介紹了SpringBoot項目從搭建到發(fā)布一條龍,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • java 實現(xiàn)微信服務(wù)器下載圖片到自己服務(wù)器

    java 實現(xiàn)微信服務(wù)器下載圖片到自己服務(wù)器

    這篇文章主要介紹了 java 實現(xiàn)微信服務(wù)器下載圖片到自己服務(wù)器的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • SpringBoot中配置Web靜態(tài)資源路徑的方法

    SpringBoot中配置Web靜態(tài)資源路徑的方法

    這篇文章主要介紹了SpringBoot中配置Web靜態(tài)資源路徑的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 詳解Spring Boot下使用logback 記錄多個文件日志

    詳解Spring Boot下使用logback 記錄多個文件日志

    這篇文章主要介紹了詳解Spring Boot下使用logback 記錄多個文件日志,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Java 8實現(xiàn)任意參數(shù)的單鏈表

    Java 8實現(xiàn)任意參數(shù)的單鏈表

    這篇文章主要為大家詳細(xì)介紹了Java 8實現(xiàn)任意參數(shù)的單鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • window?下?win10?jdk8安裝與環(huán)境變量的配置過程

    window?下?win10?jdk8安裝與環(huán)境變量的配置過程

    這篇文章主要介紹了window?下?win10?jdk8安裝與環(huán)境變量的配置,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Java中的集合框架

    Java中的集合框架

    本文主要介紹了Java中集合框架的相關(guān)知識,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • 一篇文章帶你搞定JAVA反射

    一篇文章帶你搞定JAVA反射

    這篇文章主要介紹了Java反射機(jī)制的簡單講解,本文講解了Java的高級概念反射機(jī)制,通過文字介紹案例該項概念和代碼的詳細(xì)展示,需要的朋友可以參考下
    2021-07-07
  • Java中BIO、NIO和AIO舉例總結(jié)

    Java中BIO、NIO和AIO舉例總結(jié)

    Java BIO、NIO、AIO是 Java 中的三種I/O模式,每種模式都有其特點和應(yīng)用場景,這篇文章主要介紹了Java中BIO、NIO和AIO的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-02-02

最新評論

亚东县| 宁国市| 苗栗市| 岫岩| 金塔县| 肇州县| 孟州市| 石台县| 铜山县| 吴桥县| 景东| 车险| 伽师县| 莆田市| 武宣县| 景东| 丹棱县| 乐清市| 财经| 宜城市| 方山县| 岑巩县| 肥西县| 淮南市| 武隆县| 深水埗区| 万全县| 铅山县| 永登县| 建瓯市| 乳源| 靖州| 盖州市| 射阳县| 郑州市| 浮山县| 察隅县| 上犹县| 张家界市| 仪陇县| 麟游县|