1、字符串的操做字符串
字符串是能够倒着拼接的!!!it
例子:好比输入一个整型数字123456,要求输出对应的中文“一二三四五六”for循环
实现方法:变量
咱们用for循环对10取余数能够很容易的按照以下顺序拿到每一位的数字循环
六、五、四、三、二、1(能够看出数字是倒序的)方法
有几种方法能够处理这些数据数据
方法一:思考
先获得一个倒序的数值:654321,而后再把这个654321用for循环对10取余数,就可拿到原始顺序排列的每一位数字一、二、三、四、五、6字符
以后经过switch case语句取到对应的中文便可cas
但这种作法存在一个隐患,对10的倍数的数值会丢掉末尾的0,例如20000,获得的倒序数值是2,而不会是指望的00002
方法二:
利用数字的位数进行修正
对于一个具体的输入数值,咱们可拿到其最高位数
这样咱们就能够写一个for循环,从最高位开始往下取出每一位的数字进行操做
取每一位数字的方法,能够在循环内嵌套一个不断除以10的for循环(须要注意的是,在最外层的for循环中,每循环一次都要【减去】对应位的数值)
即123456,共有六位数,从最高位开始循环,取到1后,123456要减掉100000,拿到23456后再开始下一轮的循环
这样就能避免10的倍数的隐患,取到每个位上的数字
方法三:
设置两个字符串变量,str_result=“”,str
在for循环的每一轮中可按照倒序取到一位数字,在拿到数字后,直接用switch case语句获取对应中文,赋值给str
利用下面这条语句
str_result = str + str_result;
【将新的字符串拼接到旧字符串的“前面”】,问题解决!
思考:
方法一是比较直白的思路,但不够严谨
方法二虽然能实现需求,可是嵌套了两层的for循环,而且还要建立中间变量用以不断减去当前的最高位,不够优雅
方法三只用了一层循环就解决了问题,代码比方法二要简洁,理解起来也更为顺畅