Heim >Backend-Entwicklung >Golang >So extrahieren Sie Zahlen aus einer Zeichenfolge in der Go-Sprache

So extrahieren Sie Zahlen aus einer Zeichenfolge in der Go-Sprache

王林
王林Original
2023-07-12 13:18:073805Durchsuche

So extrahieren Sie Zahlen aus einer Zeichenfolge in der Go-Sprache

In der Go-Sprache müssen wir häufig den Zahlenteil aus einer Zeichenfolge extrahieren. Beispielsweise müssen wir möglicherweise den numerischen Teil einer Zeichenfolge extrahieren, die eine Telefonnummer enthält, oder die Preisnummer aus einer Zeichenfolge extrahieren, die Preisinformationen enthält. In diesem Artikel werden mehrere gängige Methoden vorgestellt, um dieses Ziel zu erreichen.

Methode 1: Reguläre Ausdrücke verwenden

Die Go-Sprache bietet eine integrierte Bibliothek für reguläre Ausdrücke regexp, mit der wir den numerischen Teil der Zeichenfolge extrahieren können. Das Folgende ist ein Beispielcode: regexp,我们可以使用它来提取字符串中的数字部分。下面是一个示例代码:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    str := "ABC1234DEF5678GHI"

    re := regexp.MustCompile("[0-9]+")
    nums := re.FindAllString(str, -1)

    fmt.Println(nums)
}

运行以上代码,输出结果为:[1234 5678]

在上面的代码中,我们使用了正则表达式[0-9]+来匹配字符串中的数字部分。函数FindAllString返回所有匹配的字符串。第二个参数-1表示返回所有匹配,而不是只返回第一个匹配。最后,我们打印出了提取出的数字部分。

方法二:使用strconv

Go语言的strconv包提供了一系列用于转换字符串和各种数字类型的函数。我们可以使用这些函数来提取字符串中的数字。

以下是一个示例代码:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "ABC1234DEF5678GHI"

    nums := make([]int, 0)
    num := ""
    for _, char := range str {
        if char >= '0' && char <= '9' {
            num += string(char)
        } else if num != "" {
            n, _ := strconv.Atoi(num)
            nums = append(nums, n)
            num = ""
        }
    }

    fmt.Println(nums)
}

运行以上代码,输出结果为:[1234 5678]

在上面的代码中,我们遍历了字符串中的每个字符,并使用Atoi函数将提取出的数字字符串转换为整数。最后,我们打印出了提取出的数字部分。

方法三:手动解析字符串

如果字符串中的数字部分具有一定的规律,我们也可以手动解析字符串来提取数字。以下是一个示例代码:

package main

import "fmt"

func main() {
    str := "ABC1234DEF5678GHI"

    nums := make([]int, 0)
    num := 0
    for _, char := range str {
        if char >= '0' && char <= '9' {
            num = num*10 + int(char-'0')
        } else if num != 0 {
            nums = append(nums, num)
            num = 0
        }
    }

    fmt.Println(nums)
}

运行以上代码,输出结果为:[1234 5678]

在上面的代码中,我们遍历了字符串中的每个字符,并使用当前字符的ASCII码减去字符'0'rrreee

Führen Sie den obigen Code aus. Das Ausgabeergebnis ist: [1234 5678].

Im obigen Code verwenden wir den regulären Ausdruck [0-9]+, um den numerischen Teil der Zeichenfolge abzugleichen. Die Funktion FindAllString gibt alle passenden Strings zurück. Der zweite Parameter -1 bedeutet, dass alle Übereinstimmungen und nicht nur die erste Übereinstimmung zurückgegeben werden. Zum Schluss drucken wir den extrahierten Zahlenteil aus. 🎜🎜Methode 2: Verwenden Sie das Paket strconv 🎜🎜Das Paket strconv der Go-Sprache bietet eine Reihe von Funktionen zum Konvertieren von Zeichenfolgen und verschiedenen numerischen Typen. Mit diesen Funktionen können wir Zahlen aus einer Zeichenfolge extrahieren. 🎜🎜Das Folgende ist ein Beispielcode: 🎜rrreee🎜Führen Sie den obigen Code aus. Das Ausgabeergebnis ist: [1234 5678]. 🎜🎜Im obigen Code durchlaufen wir jedes Zeichen in der Zeichenfolge und konvertieren die extrahierte numerische Zeichenfolge mithilfe der Funktion Atoi in eine Ganzzahl. Zum Schluss drucken wir den extrahierten Zahlenteil aus. 🎜🎜Methode 3: Die Zeichenfolge manuell analysieren🎜🎜Wenn der Zahlenteil in der Zeichenfolge bestimmte Muster aufweist, können wir die Zeichenfolge auch manuell analysieren, um die Zahlen zu extrahieren. Das Folgende ist ein Beispielcode: 🎜rrreee🎜Führen Sie den obigen Code aus. Das Ausgabeergebnis ist: [1234 5678]. 🎜🎜Im obigen Code durchlaufen wir jedes Zeichen in der Zeichenfolge und verwenden den ASCII-Code des aktuellen Zeichens minus dem ASCII-Code des Zeichens '0', um die entsprechende Zahl zu erhalten. Indem wir die aktuelle Zahl ständig mit 10 multiplizieren und die neue Zahl addieren, erhalten wir die endgültige Zahl. Zum Schluss drucken wir den extrahierten Zahlenteil aus. 🎜🎜Anhand der obigen Einführung können wir sehen, dass die Go-Sprache verschiedene Methoden zum Extrahieren des numerischen Teils der Zeichenfolge bereitstellt. Je nach Bedarf können wir die geeignete Methode auswählen. Unabhängig davon, welche Methode wir wählen, können wir den numerischen Teil der Zeichenfolge genau extrahieren, was unsere spätere Verarbeitung erleichtert. 🎜

Das obige ist der detaillierte Inhalt vonSo extrahieren Sie Zahlen aus einer Zeichenfolge in der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn