您的位置:首页 > 编程语言 > Java开发

java学习之正则表达式日记

2015-12-02 11:27 483 查看
/**

* 判断数字是否经过果excel转换

*/

public static boolean isENum(String regx,String input){

Pattern pattern = Pattern.compile(regx);

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

}

private static String regx = "^((-?\\d+.?\\d*)[Ee]{1}(-?\\d+))$";//科学计数法正则表达式

/**

* 使用java正则表达式去掉多余的.与0

* @param s

* @return

*/

public static String subZeroAndDot(String s){

if(s.indexOf(".") > 0){

s = s.replaceAll("0+?$", "");//去掉多余的0

s = s.replaceAll("[.]$", "");//如最后一位是.则去掉

}

return s;

}

for (int x=0;x<values.length;x++){

if (!(values[x]==null)&&StringUtils.indexOfByRegex(values[x],regx)!=-1){

values[x] = new BigDecimal(values[x]).toPlainString();//科学计数法转换普通计数法

}else if(!(values[x]==null)&&values[x].indexOf(".") > 0){

values[x] = subZeroAndDot(values[x]);

}

}

import java.math.BigDecimal;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import com.sage.util.StringUtils;

public class s {

static String regx = "^((-?\\d+.?\\d*)[Ee]{1}(-?\\d+))$";//科学计数法正则表达式

static String reg = "^\\d+.{1}[0]{1}$";//.0正则表达式

public static boolean isENum(String input,String regx){//判断输入字符串是否为科学计数法

Pattern pattern = Pattern.compile(regx);

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

}

/**

* 使用java正则表达式去掉多余的.与0

* @param s

* @return

*/

public static String subZeroAndDot(String s){

if(s.indexOf(".") > 0){

s = s.replaceAll("0+?$", "");//去掉多余的0

s = s.replaceAll("[.]$", "");//如最后一位是.则去掉

}

return s;

}

public static int indexOfByRegex(String str, String search){

Pattern p = Pattern.compile(search);

Matcher m = p.matcher(str);

if(m.find()){

return m.start();

}

return -1;

}

public static void main(String[] args) {

String sjiachun = "单元格";

String a = "1.3588762267E10";

String b = "2.2602E-7";

String c = "22.0.0200";

System.out.println(StringUtils.indexOfByRegex(a,regx));

System.out.println(indexOfByRegex(a,regx));

System.out.println(isENum(sjiachun,regx));

System.out.println(isENum(a,regx));

System.out.println(isENum(b,regx));

System.out.println(isENum(c,reg));

System.out.println(subZeroAndDot(c));

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: