Ich möchte Strings in Kotlin wie Python manipulieren!

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.

Einführung

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.

String-Manipulation

Scheibe

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

String-Suche

//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.

String-Verkettung

val array = ["abc","def","ghi"]
"".join(array) // "abcdefghi"
"-".join(array) // "abc-def-ghi"
"++".join(array) // "abc++def++ghi"

String split

Trennlinie
"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"]

Trimmen

//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"

Aussehen zählen

"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

Mit Null füllen

"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.

schließlich

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

Ich möchte Strings in Kotlin wie Python manipulieren!
Ich möchte Dunnetts Test in Python machen
Ich möchte verschachtelte Dicts in Python zusammenführen
Ich möchte den Fortschritt in Python anzeigen!
Ich möchte in Python schreiben! (1) Überprüfung des Codeformats
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Auch mit JavaScript möchte ich Python `range ()` sehen!
Ich möchte eine Datei mit Python zufällig testen
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich möchte R-Datensatz mit Python verwenden
Ich möchte am Ende etwas mit Python machen
Ich möchte mit Python debuggen
Ich möchte Python mit VS-Code ausführen können
Ich möchte eine schöne Ergänzung zu input () in Python hinzufügen
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Permutation in Python zu implementieren
Ich möchte in der Einschlussnotation drucken
Ich habe versucht, PLSA in Python 2 zu implementieren
Ich möchte ein Glas aus Python verwenden
Ich möchte Protokolle mit Python analysieren
Ich möchte mit aws mit Python spielen
[Python / AWS Lambda-Ebenen] Ich möchte nur Module in AWS Lambda-Ebenen wiederverwenden
Ich habe versucht, ADALINE in Python zu implementieren
Ich wollte ABC159 mit Python lösen
Ich habe versucht, PPO in Python zu implementieren
Ich möchte eine in Python in PDF konvertierte Tabelle wieder in CSV konvertieren
Ich möchte das Ergebnis von "Zeichenfolge" .split () in Python stapelweise konvertieren
Mit Docker durchgeführte Umgebungswartung (Ich möchte GrADS in Python nachbearbeiten
Ich möchte Affenpatches nur teilweise sicher mit Python machen
3 Möglichkeiten, Zeitzeichenfolgen mit Python zu analysieren [Hinweis]
Ich möchte MATLAB feval mit Python verwenden
Ich möchte Datetime.now in Djangos Test reparieren
Ich möchte mich mit Schlüsselwortargumenten von Python merken
Python: Ich konnte in Lambda rekursieren
Ich möchte mit Python eine E-Mail von Google Mail senden.
Geschrieben "Einführung in die Effektüberprüfung" in Python
Ich möchte DB-Informationen in einer Liste speichern
Ich habe versucht, TOPIC MODEL in Python zu implementieren
Ich möchte Temporäres Verzeichnis mit Python2 verwenden
Ich möchte Ceres Solver aus Python verwenden
#Unresolved Ich möchte Gobject-Introspection mit Python3 kompilieren
Ich möchte APG4b mit Python lösen (Kapitel 2)
Ich möchte die Produkte verkaufen, die ich durch Python Scraping Mercari aufgelistet habe
[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 2/3
Ich möchte C ++ - Code aus Python-Code erstellen!
Ich habe versucht, eine selektive Sortierung in Python zu implementieren
Ich möchte mit Python in eine Datei schreiben
Vergleichen Sie Zeichenfolgen in Python
Strings in Python umkehren
Ich möchte die Effizienz mit Python auch in einem experimentellen System verbessern. (3) Ich möchte mit Pandas so etwas wie Excel machen
Ich möchte eine Prioritätswarteschlange erstellen, die mit Python (2.7) aktualisiert werden kann.
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
[Python] Ich möchte bestimmte Dateien, die in jedem Ordner verteilt sind, an einem Ort sammeln
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Selbst Anfänger möchten sagen "Ich verstehe Python voll und ganz"
Ich möchte einen Python-Generator viele Male iterieren
Ich möchte schnell UUID generieren (Gedenknotiz) ~ Python Edition ~
Ich möchte mit einem Knopf am Kolben übergehen