Die Zeichenfolgenoperation von kotlin ist ebenfalls praktisch, aber schließlich möchte ich die Zeichenfolge wie Python bedienen.
Aus diesem Grund habe ich eine Bibliothek erstellt, mit der kotlin String-Operationen ausführen kann, die Python entsprechen.
ktPyString https://github.com/ChanTsune/ktPyString
Durch das Definieren einer Erweiterungsfunktion für String kann kotlin auch String-Operationen wie Python ausführen.
Gradle
build.gradle
dependencies {
...
implementation 'dev.tsune:ktPyString:0.0.0'
...
}
Maven
<dependency>
<groupId>dev.tsune</groupId>
<artifactId>ktPyString</artifactId>
<version>0.0.0</version>
<type>pom</type>
</dependency>
Zur abhängigen Bibliothek hinzufügen.
val str = "0123456789"
str[0,5]
// 01234
str[0,8,2]
// 0246
str[null,null,-1]
// 9876543210
Dies ist eine Slice-Operation für Pythonista. Sobald Sie sich daran gewöhnt haben, möchten Sie es in anderen Sprachen tun.
Wenn Sie dieselbe Operation in Python schreiben, ist dies übrigens wie folgt.
str = "0123456789"
str[0:5]
# 01234
str[0:8:2]
# 0246
str[::-1]
# 9876543210
//Suche von Anfang an
"123412312312345".find("123") // 0
//Suchen Sie durch Angabe der Startposition
"123412312312345".find("123",start:2) // 4
//Suchen Sie durch Angabe der Endposition
"123412312312345".find("123",end:1) // -1
//Suche vom Ende
"123412312312345".rfind("123") // 10
Sie können auch vom Ende aus suchen, indem Sie die Startposition und die Endposition angeben.
val array = ["abc","def","ghi"]
"".join(array) // "abcdefghi"
"-".join(array) // "abc-def-ghi"
"++".join(array) // "abc++def++ghi"
"abc\nabc".splitlines() // ["abc", "abc"]
"abc\r\nabc\n".splitlines() // ["abc", "abc"]
//Split hinterlässt einen Break-Charakter
"abc\nabc\r".splitlines(true) // ["abc\n", "abc\r"]
"abc\r\nabc\n".splitlines(true) // ["abc\r\n", "abc\n"]
//Nur rechtes Ende
"rstrip sample ".rstrip() // "rstrip sample"
"rstrip sample ".rstrip("sample ") // "rstri"
" rstrip sample".rstrip() // " rstrip sample"
//Nur am linken Ende
" lstrip sample".lstrip() // "lstrip sample"
" lstrip sample".lstrip(" ls") // "trip sample"
"lstrip sample".lstrip() // "lstrip sample"
//Beide Enden
" spacious ".strip() // "spacious"
"www.example.com".strip("cmowz.") // "example"
"abc abc abc".count("abc") // 3
//Startposition festlegen
"abc abc abc".count("abc", start:2) // 2
//Angabe der Endposition
"abc abc abc".count("abc", end:1) // 0
"abc".zfill(1) // "abc"
"abc".zfill(5) // "00abc"
//Wenn unterschrieben
"+12".zfill(5) // "+0012"
"-3".zfill(5) // "-0003"
"+12".zfill(2) // "+12"
Wenn unterschrieben, wird nach dem Vorzeichen eine Null angezeigt.
Wenn Sie alles schreiben, wird es lange dauern, also werde ich es hier vorstellen.
Darüber hinaus unterstützen die im Str-Typ von Python verfügbaren Methoden die meisten Methoden mit Ausnahme derjenigen, die sprachlich nicht realisierbar oder schwer zu implementieren sind.
Wenn Sie mit dem Programmieren von Python aus begonnen haben, ist dies nicht relativ praktisch, da Sie in Python vertraute Zeichenfolgen bedienen können?
Sie können diese Methode implementieren. Ist es nicht besser, diese Methode zu implementieren? Wenn es Kotlin ist, lassen Sie mich bitte wissen, ob es schön ist, so zu schreiben.
Wir warten auf dich.
Wenn ja, würde ich gerne einen Fehler melden.
Abgesehen davon, da ich in der Vergangenheit auch eine Swift-Version der Bibliothek erstellt habe, ist es möglicherweise möglich, den größten Teil der Verarbeitung durch Kopieren und Einfügen unter iOS und Android um Zeichenkettenoperationen zu verschieben. (Weil die Grammatik von Swift und Kotlin ziemlich ähnlich ist) https://qiita.com/ChanTsune/items/bd611a4c778c0fb338e6
Recommended Posts