查找字符串中的数字

查找字符串中的数字

String numStr = "0123456789";
int index = 0;
		for(int i=0;i<numStr.length();i++){
			while((index = str.indexOf(numStr.charAt(i), index)) != numStr.length()){
				if(index == -1)break;
				result[str.length()-index-1] = String.valueOf(str.charAt(index));
				++index;
			}
		}
更改的数字转中文大写代码

package zeng.test;

public class Num2CnNum {
	
	private static final String cnNum1[] = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"} ;
	private static final String cnNum2[] = {"个","拾","佰","仟","万","亿"};
	private static final String numStr = "0123456789";
	
	public static void main(String[] arg0){
		new Num2CnNum();
	}
	
	public Num2CnNum(){
		
		System.out.println(this.toCnNumString("100000080.12345"));
		System.out.println(this.toCnNumString(".12345"));
		System.out.println(this.toCnNumString("100.1045"));
	}
	
	private String toCnNumString(String str){
		
		
		//判断是否为存在小数点
		if(str.contains(".")){
			String splitNum[] = str.split("\\.");
			
			StringBuffer sb = new StringBuffer();
			for(int i=0;i<splitNum[1].length();i++){
				int num = Integer.parseInt(String.valueOf(splitNum[1].charAt(i)));
				sb.append(cnNum1[num]);
			}
			if(splitNum[0].length() != 0){
				return toCnNum(splitNum[0])+"点"+sb.toString();
			}else{
				return cnNum1[0]+"点"+sb.toString();
			}
			
		}else{
			return toCnNum(str);
		}
	}
	
	private String toCnNum(String str){
		int index = 0;
		String result[]=new String[str.length()];
		for(int i=0;i<numStr.length();i++){
			while((index = str.indexOf(numStr.charAt(i), index)) != numStr.length()){
				if(index == -1)break;
				result[str.length()-index-1] = String.valueOf(str.charAt(index));
				++index;
			}
		}
		StringBuffer sb = new StringBuffer();
		for(int i=str.length()-1;i>=0;i--){
			int num = Integer.parseInt(result[i]);
			//sb.append(cnNum1[num]+cnNum2[i]);
			if(i<=4){
				sb.append(cnNum1[num]+cnNum2[i]);
			}else if(i>=5 && i<=7){
				sb.append(cnNum1[num]+cnNum2[i-4]);
			}else if(i == 8 ){
				sb.append(cnNum1[num]+cnNum2[5]);
			}
		}
		
		return sb.toString().replace("个", "");
	}
	
	
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值