A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© pengyuming 中级黑马   /  2014-4-20 23:12  /  1472 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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);
复制代码
但是如果这样这套代码的移置性不是很好,各位是否有更好的方法??


评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

2 个回复

倒序浏览
猜测楼主的意思大概是这样的吧
  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
用Dictionary数组应该可以简化你的代码并且性能也会提升很多。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马