`
Luckydan
  • 浏览: 8344 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

将数字转换成字符串

 
阅读更多
        昨天去一家公司面试,做一道将100000000之内数字转成字符串的算法题,一看位数不多,想用穷举法,结果弄了半天没弄出来,今天又想了下,写了点代码。如下。

public class Convert {
  static String number[] = {"零","一","二","三","四","五","六","七","八","九",};
	static String decimal[]={"","十","百","千","万","万十","万百","万千","亿"};
	static char ch[] = {'0','1','2','3','4','5','6','7','8','9'};
	
	public static void main(String[] args) {
		convertToChinese(0);
		convertToChinese(1);
		convertToChinese(10);
		convertToChinese(100);
		convertToChinese(101);
		convertToChinese(10000);
		convertToChinese(101010);
		convertToChinese(1010010);
	}
	
	public static void convertToChinese(int num){
	      String str = num+"";
	      String converseStr = converse(str);
	      String result="";    
	  
	      for(int i=0;i<converseStr.length();i++){
	    	  char c = converseStr.charAt(i);
	    	  int j =0;
	    	  for(;j<10;j++){
	    	      if(c==ch[j]){
	    	    	  break;
	    	      }	  
	    	  }
	    	  if(number[j].equals("零")){
	    		  result+="零";
	    	  }else{
	    	     result+=decimal[i]+number[j];
	    	  }
	      }
		 System.out.println(quitZero(quitWan(converse(result))));
	}

	private static String converse(String str) {
		String newStr="";
          for(int i=str.length()-1;i>=0;i--){
        	  char c = str.charAt(i);
              newStr+=c;
          }
		return newStr;
	}
	
//	处理万位
	private static String quitWan(String str){
		String [] temp = str.split("万");
		String result = "";
		if(temp.length>2){
			for(int i=0;i<temp.length-1;i++){
				 result+=temp[i];
			}
			result=result+"万"+temp[temp.length-1];
			return result;	
		}
	   return str;
	}
	
//	处理零
	private static String quitZero(String str){
		String newStr="";
		for(int i=0;i<str.length();i++){
			char c = str.charAt(i);
			if(c=='零'&&i==str.length()-1){
				break;
			}
			if(c=='零'&&str.charAt(i+1)=='零'){
				String temp="";
				for(int j=0;j<str.length();j++){
					if(j==i){continue;}
					temp+=str.charAt(j);
				}
				return quitZero(temp);
			}
			newStr+=c;
		}
		if(newStr.equals("")){newStr="零";}
		return newStr;
	}
}



结果如下
零
一
一十
一百
一百零一
一万
一十万零一千零一十
一百零一万零一十


用了N多 String+。。。。内存中会有很多垃圾,应该用StringBuffer代替,马上要出去了,以后再改
1
2
分享到:
评论
1 楼 amos_tl 2011-10-22  
看了一下你的, 这是我写的: http://w26.iteye.com/blog/1207790

相关推荐

    C语言中将数字转换为字符串的方法

    - str:目标字符串,转换后的字符串将存储在其中。 - radix:基数,用于指定数字的进制基数,比如基数为10则表示十进制。 需要注意的是,itoa()函数不保证在所有平台上都有,且不与ANSI标准兼容,因此在标准严格...

    sql中将数字转换为字符串—STR().doc

    sql中将数字转换为字符串—STR().doc

    数值转字符串函数

    这两个函数分别用于将整数和浮点数转换成字符串形式。 #### 二、`toStr()` 函数详解 **函数原型**: ```c char* toStr(int num, char precition); ``` **功能描述**: 该函数接收一个整数 `num` 和一个精度参数 `...

    (c#)字符串转换成字符数组 字符串转换成int 数组

    在这个例子中,`strNumbers`是一个包含数字的字符串,通过`Split(',')`将其分割成字符串数组`tempArr`。接着,使用`int.Parse()`方法将每个字符串元素转换为整数,并存储在`intArr`数组中。 ### 三、读取文件并转换...

    数字怎样转化为字符串的库函数解析

    总的来说,这些库函数为C++程序员提供了将数字转换为字符串的便捷途径,适用于不同的数值类型和特定的格式需求。在实际开发中,应根据项目需求和目标平台选择合适的转换方法,同时注意错误处理和内存管理,确保程序...

    PB POWERBUILDER 字符串 数组 相互 转换 转化

    |PowerBuilder 数组字符串相互转化 天津 李华锋 * * | | * *PowerBuilder 数组字符串相互转化 完全免费 * * | | * *如果你将这个程序放在你的网站上,我希望你能同时加上本站的链接 | | * | * | * *老字符串转数组...

    将数字从字符串中提取

    比如,如果字符串中包含浮点数,我们可能需要将匹配到的字符串转换为浮点数类型。同时,对于大型项目,要考虑异常处理,确保代码的健壮性。例如,如果输入的字符串格式不正确,提取过程中可能会抛出异常,这时可以...

    数字转换为字符串函数

    自己用C语言实现数字到字符串的转换,包括负数

    C#中字符串的格式化及转换成数值的方法

    在C#中,将一个表示数字的字符串转换为整数类型的最常用方法是使用`Convert.ToInt32`函数或`int.Parse`方法。 **示例:** ```csharp string str = "1234"; int i = Convert.ToInt32(str); ``` 这里,`Convert.To...

    oracle通过sql实现字符串转数字oracle函数

    在Oracle数据库中,将字符串转换为数字是一项常见的操作,特别是在处理包含数字的字符串列时,可能需要进行数值计算或按照数值大小进行排序。本篇文章将深入探讨如何在SQL查询中利用Oracle提供的函数来实现这一目标...

    从字符串中提取连续的字符数字转换为整数

    本文档将详细介绍从字符串中提取连续的字符数字转换为整数的方法,並提供了完整的源代码,适合于那些想要编码实现字符串中提取连续的字符数字转换为整数的同学。 知识点1:字符串处理 在本文档中,我们使用了C语言...

    将整数转换成字符串的函数

    ### 将整数转换成字符串的函数:详细解析 在嵌入式系统开发过程中,经常需要将数值型数据转换为字符串形式以便于显示或传输。本文将深入探讨一种用于将16位整数转换为字符串指针的方法,并对其背后的原理进行详细...

    16进制数转化成字符串(包括中文)

    java代码,从16进制数直接转化成字符串(包括中文)简单好用

    TIA博途中字符串转换相关指令的使用方法(一).docx

    例如,将字符串转换为数字值参数 IN 中的数值数据类型为 STRING,WSTRING;参数 OUT 中数值的数据类型为 CHAR,WCHAR,USINT,UINT,UDINT,SINT,INT,DINT,REAL,LREAL。 2. 字符串和数值相互进行转换指令 字符...

    C语言常用数字和字符串转换函数

    C语言常用数字和字符串转换函数,toi 字符串转换成整型数 atol 字符串转换成长整型数 atof 字符串转换成浮点型数 strtol 字符串转换成长整型数 strtoul 字符串转换成无符号长整型数 strtod 字符串转换成浮点数

    python实现字符串加密成纯数字

    为了将字符串转换为纯数字,我们可以先将字符串的每个字符转换为ASCII码,然后将这些数字连接成一个大整数。解密时则相反,将这个大整数拆分,还原出每个字符的ASCII码,再转化为原来的字符。 下面是一个简单的示例...

    usart_整数转字符串_

    这时,我们需要自己编写函数将整数转换为字符串,以便通过USART发送。下面我们将详细讨论如何实现这个功能,并探讨其背后的原理和优化方法。 一、整数转字符串的基本原理 整数转字符串的过程主要是将十进制整数...

    易语言十六进制与字符串转换

    2. **十六进制转字符串**:相反的过程需要先使用“十六进制到整数”函数将十六进制字符串转换为十进制,再用“整数到字符串”函数将十进制数值转化为字符串。需要注意的是,这里的“整数到字符串”可能会产生一个以...

    电子-浮点数转换成字符串.c

    电子-浮点数转换成字符串.c,单片机/嵌入式STM32-F0/F1/F2

    C/C++字符串,字符转数字,数字转字符

    将数字转换为字符时,可以将整数的每一位数字加上字符'0'的ASCII值(即48),以获得对应的字符形式。如果使用库函数itoa()或sprintf(),则可以直接将整数转换为字符串。 数字转字符串的库函数: - itoa():将整型值...

Global site tag (gtag.js) - Google Analytics