將十進制整數轉換爲字符串實現(Go)

目錄

描述

解決方案

代碼

代碼走讀


 

描述

實現將十進制整數轉換爲字符串(不使用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 {
	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"
	}
}

 

代碼走讀

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)
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章