程序员必知:【java】判断字符串是否整数的三种方式,孰优孰劣请自行判断

简介: 程序员必知:【java】判断字符串是否整数的三种方式,孰优孰劣请自行判断

代码:

package test;

import java.util.regex.Pattern;

/*

判断字符串是否整数的三种方式,孰优孰劣请自行判断

/

public class Test6 {

public static void main(String【】 args) {

String【】 arr= {"123","007","0000","1A","哈哈","Tank","100000000","00000001","100Z996","100996l",};

for(String s:arr) {

boolean result1=isInteger1(s);

System.out.println("isInteger1认为:"+s+(result1?"是":"不是")+"整数");

//代码效果参考:http://www.zidongmutanji.com/zsjx/392233.html

boolean result2=isInteger2(s);

System.out.println("isInteger2认为:"+s+(result2?"是":"不是")+"整数");

boolean result3=isInteger3(s);

System.out.println("isInteger3认为:"+s+(result3?"是":"不是")+"整数");

System.out.println();

}

}

public static boolean isInteger1(String s) {

try {

Integer.parseInt(s);

return true;

}catch(Exception ex) {

return false;

}

}

public static boolean isInteger2(String s) {

char【】 arr=s.toCharArray();

for(char c:arr) {

if(Character.isDigit(c)==false) {

return false;

}

}

return true;

}

public static boolean isInteger3(String s) {

Pattern pattern = Pattern.compile("【1-9】+【0-9】*");

return pattern.matcher(s).matches();

}

}

输出:

isInteger1认为:123是整数

isInteger2认为:123是整数

isInteger3认为:123是整数

isInteger1认为:007是整数

isInteger2认为:007是整数

isInteger3认为:007不是整数

isInteger1认为:0000是整数

isInteger2认为:0000是整数

isInteger3认为:0000不是整数

isInteger1认为:1A不是整数

isInteger2认为:1A不是整数

isInteger3认为:1A不是整数

isInteger1认为:哈哈不是整数

isInteger2认为:哈哈不是整数

isInteger3认为:哈哈不是整数

isInteger1认为:Tank不是整数

isInteger2认为:Tank不是整数

isInteger3认为:Tank不是整数

isInteger1认为:100000000是整数

isInteger2认为:100000000是整数

isInteger3认为:100000000是整数

isInteger1认为:00000001是整数

isInteger2认为:00000001是整数

isInteger3认为:00000001不是整数

isInteger1认为:100Z996不是整数

isInteger2认为:100Z996不是整数

isInteger3认为:100Z996不是整数

isInteger1认为:100996l不是整数

isInteger2认为:100996l不是整数

isInteger3认为:100996l不是整数

END

相关文章
|
SQL JSON Java
告别字符串拼接:用Java文本块优雅处理多行字符串
告别字符串拼接:用Java文本块优雅处理多行字符串
686 108
|
自然语言处理 Java Apache
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
607 14
|
SQL JSON Java
告别拼接噩梦:Java文本块让多行字符串更优雅
告别拼接噩梦:Java文本块让多行字符串更优雅
1085 82
|
人工智能 Kubernetes Java
回归开源,两位 Java 和 Go 程序员分享的开源贡献指引
Higress是一个基于Istio和Envoy的云原生API网关,支持AI功能扩展。它通过Go/Rust/JS编写的Wasm插件提供可扩展架构,并包含Node和Java的console模块。Higress起源于阿里巴巴,解决了Tengine配置重载及gRPC/Dubbo负载均衡问题,现已成为阿里云API网关的基础。本文介绍Higress的基本架构、功能(如AI网关、API管理、Ingress流量网关等)、部署方式以及如何参与开源贡献。此外,还提供了有效的开源贡献指南和社区交流信息。
2775 33
|
网络协议 Java 大数据
【高薪程序员必看】万字长文拆解Java并发编程!(1)
📌 核心痛点暴击:1️⃣ 面了8家都被问synchronized锁升级?一张图看懂偏向锁→重量级锁全过程!2️⃣ 线程池参数不会配?高并发场景下这些参数调优救了项目组命!3️⃣ volatile双重检测单例模式到底安不安全?99%人踩过的内存可见性大坑!💡 独家亮点抢先看:✅ 图解JVM内存模型(JMM)三大特性,看完再也不怕指令重排序✅ 手撕ReentrantLock源码,AQS队列同步器实现原理大揭秘✅ 全网最细线程状态转换图(附6种状态转换触发条件表)
281 0
|
安全 Java 程序员
【高薪程序员必看】万字长文拆解Java并发编程!(2 2-1)
🔥【高薪程序员必看】万字长文拆解Java并发编程!面试官看了直呼内行,90%人不知道的线程安全骚操作!💻🚀《16个高频面试灵魂拷问+底层源码暴击》🔥👉戳这里看如何用1个月经验吊打3年程序员!📌 核心痛点暴击:1️⃣ 面了8家都被问synchronized锁升级?一张图看懂偏向锁→重量级锁全过程!2️⃣ 线程池参数不会配?高并发场景下这些参数调优救了项目组命!3️⃣ volatile双重检测单例模式到底安不安全?99%人踩过的内存可见性大坑!
260 0
|
Java 程序员 应用服务中间件
【高薪程序员必看】万字长文拆解Java并发编程!(2 2-2)
📌 核心痛点暴击:1️⃣ 面了8家都被问synchronized锁升级?一张图看懂偏向锁→重量级锁全过程!2️⃣ 线程池参数不会配?高并发场景下这些参数调优救了项目组命!3️⃣ volatile双重检测单例模式到底安不安全?99%人踩过的内存可见性大坑!💡 独家亮点抢先看:✅ 图解JVM内存模型(JMM)三大特性,看完再也不怕指令重排序✅ 手撕ReentrantLock源码,AQS队列同步器实现原理大揭秘✅ 全网最细线程状态转换图(附6种状态转换触发条件表)
363 0
ZZULIOJ-1111: 多个整数的逆序输出(函数专题)(Java)
ZZULIOJ-1111: 多个整数的逆序输出(函数专题)(Java)
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
640 1