目录
描述
实现将十进制整数转换为字符串(不使用strconv包)。
解决方案
将十进制整数从个位到最高位进行拆分,将每一个位数的数字转换为字符串后再进行拼接。注意整数的正负。
代码
package main
func Itoa(number int) string {
result := ""
positive := true
if number < 0 {
positive = false
number = -number
}
for {
if number < 10 {
result = itoa(number) + result
break
}
temp := number % 10
result = itoa(temp) + result
number /= 10
}
if !positive {
result = "-" + result
}
return result
}
func itoa(number int) string {
return string(number + 48)
}
代码走读
package main func Itoa(number int) string { // 初始化结果 result := "" // positive变量用来记录number是否为自然数 positive := true // 若为负,则先将number变为正数(方便转换) if number < 0 { positive = false number = -number } // 利用循环对每一位数字进行转换,然后拼接到result中 for { if number < 10 { result = itoa(number) + result break } temp := number % 10 result = itoa(temp) + result number /= 10 } // 如果number先前是负整数,则将结果前添加负号 if !positive { result = "-" + result } return result } // 利用ASCII码,将个位整数转换为字符串 func itoa(number int) string { return string(number + 48) }