반응형
Go에서 부분 부분 추출
콘솔에서 전체 줄 (공백 포함)을 읽은 다음 처리합니다. bufio.ReadString을 사용하면 개행 문자가 입력과 읽혀 지 위해 다음 개행 문자를 함께 자르기 코드를 작성했습니다.
input,_:=src.ReadString('\n')
inputFmt:=input[0:len(input)-2]+"" //Need to manually add end of string
관리자가 수행하는 더 관용적 인 방법이 있습니까? 즉, 하위 노드를 추출 할 때 끝 널 바이트를 처리하는 라이브러리가 이미 있습니까?
(예, go readline-> string 에서 개행 문자없이 행을 읽는 방법이 이미 있는지 알고 싶습니다. 우아한 조작을 더 찾고 있습니다.)
C에서 사용하는 것과는 다른 존재 작업과 낮은 저장 형식으로 혼란스러워 저장 형식으로 혼란스러워합니다.
- 의 모든 슬라이스는 길이 (바이트)를 저장하므로 이동
len
작업 비용에 대해 신경 쓸 필요가 없습니다. 계산할 필요가 없습니다. - 문자열은 널 (null)로 끝나지 않으므로 널 바이트를 제거 할 필요가 없으며 이동
1
빈 문자열을 추가하여 슬라이싱 후 추가 할 필요가 없습니다 .
마지막 문자 (1 바이트 문자 인 경우)를 클릭하면 다음을 수행하십시오.
inputFmt:=input[:len(input)-1]
이동은 null로 끝나지 않습니다.
s = s[:len(s)-1]
길이가 0 인 입력에 대한 패닉을 피하려는 경우 연산을 자릅니다.
input, _ := src.ReadString('\n')
var inputFmt string
if len(input) > 0 {
inputFmt = input[:len(input)-1]
}
// Do something with inputFmt
이것은 Go에서 하위 하위를 수행하는 간단한 것입니다.
package main
import "fmt"
var p = fmt.Println
func main() {
value := "address;bar"
// Take substring from index 2 to length of string
substring := value[2:len(value)]
p(substring)
}
부분적으로를 얻으려면
"sp"의 위치 찾기
배열 논리로 노드 자르기
https://play.golang.org/p/0Redd_qiZM
경고 : 작동하며 입력 작동 ASCII가 아닌 UTF-8로 인코딩 된 문자 일 때 잘못 계산 시퀀스 중간에 멀티 바이트 문자를 자르기 때문에 손상 문자가 수도 있습니다.
다음은 UTF-8 인식 버전입니다.
func substr(input string, start int, length int) string {
asRunes := []rune(input)
if start >= len(asRunes) {
return ""
}
if start+length > len(asRunes) {
length = len(asRunes) - start
}
return string(asRunes[start : start+length])
}
참고 URL : https://stackoverflow.com/questions/12311033/extracting-substrings-in-go
반응형
'IT' 카테고리의 다른 글
'return'키워드는 'forEach'함수 내에서 무엇을 의미합니까? (0) | 2020.09.01 |
---|---|
Django에서 redis를 어떻게 사용할 수 있습니까? (0) | 2020.09.01 |
SQL에서 if-then-else 생식을입니까? (0) | 2020.09.01 |
android-23으로 대상을 찾을 수 있습니다. (0) | 2020.09.01 |
.NET (야수)에 대한 또는 반대 사례 [종료 됨] (0) | 2020.09.01 |