You were on a good start with strings.Index().  The key is to move
past the pattern you searched for, assuming it was found.

Something like this should work, if `bigString` is what you are
searching over, and depending on whether "Core Count:" might be on the
first line or not:

    pattern := "\nCore Count: "
    if start := strings.Index(bigString, pattern); start >= 0 {
        var nCores int
        _, err := fmt.Sscanf(bigString[start+len(pattern):], "%d", &nCores)
        if err == nil {
            fmt.Println("Number of cores:", nCores)
        }
    }

As you can see, the regular expression-based solution suggested by
others leads to less code.  This input string is so short that CPU
usage will be negligible for most purposes, outweighed by graceful
error handling and code maintenance concerns.

Best regards,
Michael


On Thu, Apr 1, 2021 at 2:28 PM Sharan Guhan <shara...@gmail.com> wrote:
>
> Hi Experts,
>
> New to Golang and finding it non trivial to achieve the below efficiently :-) 
> Any pointers will help..
>
> I have a huge string as below  .. Now from this I want to extract the number 
> "18" after "Core count".. I was thinking of walking through each string with 
> Spilt("\n"), but that will make it slower. I also tried strings.Index with 
> "Core count", but unable to see how to pull the 18 from this..
>
> Sharan
>
>
> "Version: Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz
> Voltage: 1.6 V
> External Clock: 100 MHz
> Max Speed: 4000 MHz
> Current Speed: 2300 MHz
> Status: Populated, Enabled
> Upgrade: Socket LGA3647-1
> L1 Cache Handle: 0x004D
> L2 Cache Handle: 0x004E
> L3 Cache Handle: 0x004F
> Serial Number: Not Specified
> Asset Tag: UNKNOWN
> Part Number: Not Specified
> Core Count: 18"
>
> --
> You received this message because you are subscribed to the Google Groups 
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/golang-nuts/CAGOT8aq8btVfAYWCpGz69cvPG_OQomNGyUjBg7oa85%2BAKqp7yQ%40mail.gmail.com.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAOU-OAL3_OQyVz_Zu9wntCLoKTiMeD-QazaOnZ_287_JdyQvrg%40mail.gmail.com.

Reply via email to