私は非常に新しいGolang
です。find
とprint
に同じ問題を含むすべての行value
。ファイル内の各単語について、現在の単語が複数回存在するかどうかを調べる
私のファイルは、以下のように構成されています
index
は常に
6 digits long
と
text
ある
index text
index text
.
.
.
index text
は常に16 digits long
です。
私は
find
とtext
値を含むすべての行を必要としています。私がこれまで試したものです
:
func main() {
//Array to contain common texts
found := make([]string, 6)
r, _ := os.Open("store.txt")
scanner := bufio.NewScanner(r)
//Splits in words
scanner.Split(bufio.ScanWords)
//Loop over all Words in the file
for scanner.Scan() {
line := scanner.Text()
//If the current line is 16 digits long
if(utf8.RuneCountInString(line) == 16){
currLine := line
//Search in the same files all the 16 digits long texts and
for scanner.Scan(){
searchLine := scanner.Text()
//If a same text is found
if(utf8.RuneCountInString(searchLine) == 16){
//Append it to found array
if(currLine == searchLine){
found = append(found, currLine)
}
}
}
}
}
//Print found Array
fmt.Println(found)
//Close File
r.Close()
}
その後、私はprint
現在found[i-element]
に一致するすべてのlines
にfound
を使用したいと思います。
上記のコードは、最初の手順でのみ動作します。 たとえば、ファイル内の最初の行で123456789
(インデックス1など)を取得した場合は、1回だけチェックして追加します。残りのn-1ワードについてはすべての行についてループしません。
最初の問題を修正するにはどうすればよいですか?は
あなたは
Array
で重複texts
を追加することだと思うし、それに基づいて、一致する行を印刷してください悪い考えですか?
ありがとうございます。
私はチェックのようなものをどのように行う必要がありますか? – AndreaM16
気にしなくても、正しく動作します。単に '現在の行'を印刷するだけです。 – AndreaM16
最後に、 'currLine、duplicateLIne'というように、' 000000 ABABABABABABABAB、010101 ABABABABABABABAB'のように現在の重複フィールドをどのように印刷するのですか? – AndreaM16