黑马程序员技术交流社区

标题: 把1,2,3转换为1壹 2贰 3叁 [打印本页]

作者: pengyuming    时间: 2014-4-20 23:12
标题: 把1,2,3转换为1壹 2贰 3叁
本帖最后由 pengyuming 于 2014-4-23 19:06 编辑

这道题我的思路是遇到“1”就把“1”换成“1壹” 遇到“2”就换成“2贰”,但是这样中间就会多了都好,我只能把代码写成这样
  1. int i, j = 0;

  2.             string value = "1,2,3";

  3.             string[] num = value.Split(',');


  4.             if (num.Contains("1"))
  5.             {
  6.                 value = value.Replace("1,", "1壹 ");
  7.             }
  8.             if (num.Contains("2"))
  9.             {
  10.                 value = value.Replace("2,", "2贰 ");
  11.             }

  12.             if (num.Contains("2"))
  13.             {
  14.                 value = value.Replace("3", "3叁 ");
  15.             }

  16.             Console.WriteLine(value);
复制代码
但是如果这样这套代码的移置性不是很好,各位是否有更好的方法??



作者: hhmm665544    时间: 2014-4-21 01:28
猜测楼主的意思大概是这样的吧
  1. package com.itheima;

  2. public class Demo1 {

  3.          private final static String[] STR_NUMBER = { "0零", "1壹", "2贰", "3叁", "4肆", "5伍",
  4.          "6陆", "7柒", "8捌", "9玖" }; // 大写数字
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.                 String value = "1,2,3";
  8.                 StringBuilder sb = new StringBuilder();
  9.         String[] nums = value.split(",");
  10.         for(String num:nums){
  11.                 sb.append(STR_NUMBER[Integer.parseInt(num)]);
  12.         }
  13.         System.out.println(sb);
  14.         }

  15. }
复制代码

作者: 主角    时间: 2014-4-21 16:06
用Dictionary数组应该可以简化你的代码并且性能也会提升很多。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2