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算法)