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的面向对象特性** - **类与对象**:探讨类的...
判断字符串的前缀或后缀** - 使用 `startsWith(String s)` 检查字符串是否以 `s` 开头。 - 使用 `endsWith(String s)` 检查字符串是否以 `s` 结尾。 例如: ```java String str = "Hello World"; boolean ...
- **字符串**:用于处理文本数据,Java中字符串是不可变的,通过`String`类提供丰富的操作方法。 - **数组**:用于存储同类型元素的集合,支持索引访问,是实现多数数据结构的基础。 **1.2 Java的面向对象特性** -...
- 算法:将整数转化为字符串,比较其与反转字符串是否相等。 **2.15 野果数量的计算** - 示例:假设初始野果数为 `x`,第一天吃掉 `x/2 + 1` 个,依此类推。 - 算法:逆向计算每天野果的数量。 #### 第三章 面向...
一种常见的方法是先判断字符串中的元素是数字还是汉字,然后分别进行处理。对于数字,我们可以将其转换为整型或浮点型进行数值比较;对于汉字,我们使用Unicode值进行字典序比较。 在Java中,我们可以创建一个`...
3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...
- 如果字符串不是有效的整数格式,将会抛出NumberFormatException异常。 1.1.4 Shorts1=1; s1=s1+1;有什么错? Shorts1=1; s1+=1;有什么错? - Shorts1=1; s1=s1+1;在shorts1=1时会自动提升为int类型,然后执行加1...
- **equals(Object obj):** 比较字符串是否相等。 - **indexOf(String str):** 查找字符串首次出现的位置。 #### 二十、字符串常量池 - **字符串常量池用于存储所有字符串字面量。** - **当使用双引号定义字符串时...
ArrayString.java 字符串数组 assignTwoDime.java 为二维数组赋值 getMaxElem.java 获取数组中的最大元素 incCapicity.java 演示StingBuffer的容量增长 SortDemo.java 排序示例 travelTwoDime.java 遍历二维...
对于数值型数据(如商品价格)通常使用 `double` 类型;而对于布尔型数据(如真假判断)通常使用 `boolean` 类型。 ### 9. 循环控制结构 - **循环与条件语句**:选择题第10题中的代码片段展示了如何使用循环结构,...
- **`String`类为什么是`final`的**:`String`类设计为`final`是为了保证字符串的不可变性和安全性,便于实现字符串池,提高性能。 - **`String`、`StringBuffer`、`StringBuilder`的区别与联系**: - `String`:不...
- **字符串** (`String`): 字符串是一种特殊的对象,用来表示文本。 #### 控制结构与算法 - **循环控制**: - `for`: 结构化循环语句,常用于已知循环次数的情况。 - `while`: 当条件成立时执行循环体。 - `do....
3. 数据类型转换:数值型字符可以通过`Integer.parseInt()`或`Double.parseDouble()`方法转换为数字;数字转换为字符使用`Integer.toString()`或`Double.toString()`;取小数点前两位并四舍五入,可以使用`Math....
在JAVA中,如果希望字符串中的转义字符不被解释,而按照原样输出,可以在字符串前面加上反斜杠`\`。 #### 1.1 JAVA语言基础 - 循环结构 - while **知识点解释**: `while`循环是一种基本的循环结构,在JAVA中非常...
这涉及到字符串操作的基本知识,如字符串长度的获取、字符串拼接以及条件判断。在Java或类似的面向对象语言中,可以这样实现: ```java public String addString(String string, int minLength, char padChar) { ...
- 将转换后的long型数值转换为字符串,并分割成整数部分和小数部分。 - 整数部分和小数部分分别处理,其中小数部分(角、分)直接转换为对应的中文数词。 3. **中文数词映射**:定义中文数词数组,用于将数字映射...
在处理包含转义字符的字符串时,必须明确了解每个转义字符的具体功能及其在Java中的使用规则。 **谜题15:令人晕头转向的Hello** - **描述**:涉及到字符串的输出,结果与预期不符。 - **解惑**:字符串输出时,...