`

java算法----判断字符串是否为数值型字符串

    博客分类:
  • java
 
阅读更多
package com.huifudianxia.interview;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 判断一个字符串是否为数值型字符串
 * @author yangjianzhou
 * 当是字符型字符串时返回1
 * 否则返回0
 *
 */
public class ProblemThree {

		public static void main(String[] args) {
			
			System.out.println(isNumber1("+001"));
			System.out.println(isNumber2("+1001"));
			
		}
		
		/**
		 * 使用字符串的matches方法
		 * @param s
		 * @return
		 */
		public static int isNumber1(String s){
			
			String regex = "^[1-9][0-9]*\\.[0-9]+$|^[1-9][0-9]*$|^0+\\.[0-9]+$";
			char c = s.charAt(0);
			boolean bool;
			if(c=='+'|c=='-'){
				bool = s.substring(1).matches(regex);
			}else{
				bool = s.matches(regex);
			}
			if(bool){
				return 1;
			}else{
				return 0;
			}
		}
		
		/**
		 * 使用Pattern和Matcher类的方法
		 * @param s
		 * @return
		 */
		public static int isNumber2(String s){
		
			String regex = "^[1-9][0-9]*\\.[0-9]+$|^[1-9][0-9]*$|^0+\\.[0-9]+$";
			Pattern pattern = Pattern.compile(regex);
			char c = s.charAt(0);
			if(c=='+'||c=='-'){
				s = s.substring(1);
			}
			Matcher matcher = pattern.matcher(s);
			boolean bool = matcher.matches();
			if(bool){
				return 1;
			}else{
				return 0;
			}
		}
}



运行结果:
0
1
分享到:
评论

相关推荐

    数据结构与算法(JAVA语言版)

    - **字符串**:介绍如何在Java中处理字符串,包括字符串的创建、拼接以及常用操作方法。 - **数组**:讲解一维数组和多维数组的声明、初始化和访问方式。 - **Java的面向对象特性** - **类与对象**:探讨类的...

    有关ccf的java笔记

    判断字符串的前缀或后缀** - 使用 `startsWith(String s)` 检查字符串是否以 `s` 开头。 - 使用 `endsWith(String s)` 检查字符串是否以 `s` 结尾。 例如: ```java String str = "Hello World"; boolean ...

    数据结构与算法java中文_草稿

    - **字符串**:用于处理文本数据,Java中字符串是不可变的,通过`String`类提供丰富的操作方法。 - **数组**:用于存储同类型元素的集合,支持索引访问,是实现多数数据结构的基础。 **1.2 Java的面向对象特性** -...

    《Java语言程序设计(一)》课后习题答案(课程编号04747)

    - 算法:将整数转化为字符串,比较其与反转字符串是否相等。 **2.15 野果数量的计算** - 示例:假设初始野果数为 `x`,第一天吃掉 `x/2 + 1` 个,依此类推。 - 算法:逆向计算每天野果的数量。 #### 第三章 面向...

    汉字和数字混合排序

    一种常见的方法是先判断字符串中的元素是数字还是汉字,然后分别进行处理。对于数字,我们可以将其转换为整型或浮点型进行数值比较;对于汉字,我们使用Unicode值进行字典序比较。 在Java中,我们可以创建一个`...

    Java面试宝典-经典

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    Java面经.适用于校招

    - 如果字符串不是有效的整数格式,将会抛出NumberFormatException异常。 1.1.4 Shorts1=1; s1=s1+1;有什么错? Shorts1=1; s1+=1;有什么错? - Shorts1=1; s1=s1+1;在shorts1=1时会自动提升为int类型,然后执行加1...

    java面试笔记整理,包含java,redis,kafka等

    - **equals(Object obj):** 比较字符串是否相等。 - **indexOf(String str):** 查找字符串首次出现的位置。 #### 二十、字符串常量池 - **字符串常量池用于存储所有字符串字面量。** - **当使用双引号定义字符串时...

    Java开发技术大全(500个源代码).

    ArrayString.java 字符串数组 assignTwoDime.java 为二维数组赋值 getMaxElem.java 获取数组中的最大元素 incCapicity.java 演示StingBuffer的容量增长 SortDemo.java 排序示例 travelTwoDime.java 遍历二维...

    北大青鸟S1java内部测试试卷(试题)

    对于数值型数据(如商品价格)通常使用 `double` 类型;而对于布尔型数据(如真假判断)通常使用 `boolean` 类型。 ### 9. 循环控制结构 - **循环与条件语句**:选择题第10题中的代码片段展示了如何使用循环结构,...

    最新Java面试题

    - **`String`类为什么是`final`的**:`String`类设计为`final`是为了保证字符串的不可变性和安全性,便于实现字符串池,提高性能。 - **`String`、`StringBuffer`、`StringBuilder`的区别与联系**: - `String`:不...

    java基础思维导图.pdf

    - **字符串** (`String`): 字符串是一种特殊的对象,用来表示文本。 #### 控制结构与算法 - **循环控制**: - `for`: 结构化循环语句,常用于已知循环次数的情况。 - `while`: 当条件成立时执行循环体。 - `do....

    QQ-java面试问题集锦.doc

    3. 数据类型转换:数值型字符可以通过`Integer.parseInt()`或`Double.parseDouble()`方法转换为数字;数字转换为字符使用`Integer.toString()`或`Double.toString()`;取小数点前两位并四舍五入,可以使用`Math....

    JAVA面试大全

    在JAVA中,如果希望字符串中的转义字符不被解释,而按照原样输出,可以在字符串前面加上反斜杠`\`。 #### 1.1 JAVA语言基础 - 循环结构 - while **知识点解释**: `while`循环是一种基本的循环结构,在JAVA中非常...

    2014去哪儿网校园招聘笔试试题-春季校招笔试题(开发).doc

    这涉及到字符串操作的基本知识,如字符串长度的获取、字符串拼接以及条件判断。在Java或类似的面向对象语言中,可以这样实现: ```java public String addString(String string, int minLength, char padChar) { ...

    Java钱币大小写转换

    - 将转换后的long型数值转换为字符串,并分割成整数部分和小数部分。 - 整数部分和小数部分分别处理,其中小数部分(角、分)直接转换为对应的中文数词。 3. **中文数词映射**:定义中文数词数组,用于将数字映射...

    java 解惑.pdf

    在处理包含转义字符的字符串时,必须明确了解每个转义字符的具体功能及其在Java中的使用规则。 **谜题15:令人晕头转向的Hello** - **描述**:涉及到字符串的输出,结果与预期不符。 - **解惑**:字符串输出时,...

Global site tag (gtag.js) - Google Analytics