2015-06-27 4 views
0

Как найти, учитывая предложение, аббревиатуру этого предложения с использованием языка программирования GO. Например, «Привет, мир!» Становится «HW». До сих пор я пытался расколоть предложение:Golang: аббревиатура данного предложения

package main 

import (
    "bufio" 
    "fmt" 
    "strings" 
    "os" 
) 
func main() { 
    reader := bufio.NewReader(os.Stdin) 
    fmt.Print("Enter text: ") 
    text, _ := reader.ReadString('\n') 
    fmt.Print(strings.Split(text," ")) 
    fmt.Print(strings.Index(text,)) 
} 
  1. принял входные данные от пользователя
  2. Split на возникновение белого пространства.
  3. Что дальше?

Любая помощь приветствуется.

Благодаря

ответ

4

После разделить строки, нужно, чтобы добавить первую букву каждого слова в свой строки результата.

text := "Hello World" 
words := strings.Split(text, " ") 

res := "" 

for _, word := range words { 
    res = res + string([]rune(word)[0]) 
} 

fmt.Println(res) 

Обратите внимание, что вам может понадобиться, чтобы добавить некоторые проверки, чтобы поймать случай, если вход пуст, что приводит к [""] от strings.Split.

+0

Спасибо .. Он отлично работает. –

+0

Но я не мог понять логику .. смысл этой конкретной строки кода ([] rune (word) [0]) –

+0

@RISHIKHANNA Какую конкретную часть вы не понимаете? – inf

0

Согласен с первым ответом, но немного отличается реализацией; обязательно введите import "strings" в начале вашего кода:

text := "holur stál fyrirtæki" // fake manufacturer, "hollow steel company" 
words := strings.Split(text, " ") 

res := "" 

for _, word := range words { 
    // Convert to []rune before string to preserve UTF8 encoding 
    // Use "Title" from "strings" package to ensure capitalization of acronym 
    res += strings.Title(string([]rune(word)[0])) 
} 

fmt.Println(res) // => "HSF" 
+1

Проблема заключается в использовании 'string (word [0])' вы отказались от поддержки utf-8. Вот почему в другом ответе используется '[] rune (word) [0]'. Сравните с греческой перспективой http://play.golang.org/p/bkk_XkhtJr – tomasz

+0

Это справедливо. Мне нередко приходится думать об аббревиатурах в терминах, отличных от ASCII ... См. Обновленный ответ и комментарии в коде. Я бы порекомендовал применять 'strings.Title (" ... ")' для обеспечения капитализации. – openwonk

Смежные вопросы