Inhaltsverzeichnis
Code-exemplarische Vorgehensweise
Beschreibung
Implementieren Sie die Konvertierung einer Dezimalzahl in eine Zeichenfolge (verwenden Sie nicht das Paket strconv).
Lösung
Teilen Sie die Dezimalzahl von der Einerstelle auf die höchste Ziffer und konvertieren Sie die Ziffern jeder Ziffer vor dem Spleißen in eine Zeichenfolge. Achten Sie auf das Vorzeichen der Ganzzahl.
Code
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 {
switch number {
case 0:
return "0"
case 1:
return "1"
case 2:
return "2"
case 3:
return "3"
case 4:
return "4"
case 5:
return "5"
case 6:
return "6"
case 7:
return "7"
case 8:
return "8"
default:
return "9"
}
}
Code-exemplarische Vorgehensweise
package main
import "fmt"
func Itoa(number int) string {
result := ""
// positive用来记录整数的正负性。为了计算方便在记录正负性后统一将整数转换为非负数。
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 {
switch number {
case 0:
return "0"
case 1:
return "1"
case 2:
return "2"
case 3:
return "3"
case 4:
return "4"
case 5:
return "5"
case 6:
return "6"
case 7:
return "7"
case 8:
return "8"
default:
return "9"
}
}
// 自测用例
func main() {
number := 0
result := Itoa(number)
fmt.Println(result)
}