Je veux manipuler des chaînes dans Kotlin comme Python!

L'opération de chaîne de caractères de kotlin est également pratique, mais après tout, je veux utiliser la chaîne de caractères comme Python.

C'est pourquoi j'ai créé une bibliothèque qui permet à kotlin d'effectuer des opérations de chaîne équivalentes à Python.

ktPyString https://github.com/ChanTsune/ktPyString

En définissant une fonction d'extension pour String, kotlin peut également effectuer des opérations de chaîne comme python.

introduction

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>

Ajouter à la bibliothèque dépendante.

Manipulation des cordes

tranche

val str = "0123456789"
str[0,5]
// 01234
str[0,8,2]
// 0246
str[null,null,-1]
// 9876543210

Il s'agit d'une opération de tranche pour Pythonista. Une fois que vous vous y serez habitué, vous voudrez le faire dans d'autres langues.

Au fait, si vous écrivez la même opération en Python, ce sera comme suit.

str = "0123456789"
str[0:5]
# 01234
str[0:8:2]
# 0246
str[::-1]
# 9876543210

Recherche de chaîne

//Recherche depuis le début
"123412312312345".find("123") // 0

//Rechercher en spécifiant la position de départ
"123412312312345".find("123",start:2) // 4

//Rechercher en spécifiant la position finale
"123412312312345".find("123",end:1) // -1

//Recherche depuis la fin
"123412312312345".rfind("123") // 10

Vous pouvez également rechercher à partir de la fin en spécifiant la position de départ et la position finale.

Concaténation de chaînes

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

Division de chaîne

Ligne divisée
"abc\nabc".splitlines() // ["abc", "abc"]
"abc\r\nabc\n".splitlines() // ["abc", "abc"]

//Split laissant un personnage de pause
"abc\nabc\r".splitlines(true) // ["abc\n", "abc\r"]
"abc\r\nabc\n".splitlines(true) // ["abc\r\n", "abc\n"]

garniture

//Extrémité droite seulement
"rstrip sample   ".rstrip() // "rstrip sample"
"rstrip sample   ".rstrip("sample ") // "rstri"
"  rstrip sample".rstrip() // "  rstrip sample"

//Seulement à l'extrémité gauche
"  lstrip sample".lstrip() // "lstrip sample"
"  lstrip sample".lstrip(" ls") // "trip sample"
"lstrip sample".lstrip() // "lstrip sample"

//les deux extrémités
"   spacious   ".strip() // "spacious"
"www.example.com".strip("cmowz.") // "example"

Nombre d'apparences

"abc abc abc".count("abc") // 3

//Spécifier la position de départ
"abc abc abc".count("abc", start:2) // 2

//Spécifier la position finale
"abc abc abc".count("abc", end:1) // 0

Remplir avec zéro

"abc".zfill(1) // "abc"
"abc".zfill(5) // "00abc"

//Si signé
"+12".zfill(5) // "+0012"
"-3".zfill(5) // "-0003"
"+12".zfill(2) // "+12"

S'il est signé, il y aura un zéro après le signe.

à la fin

Si vous écrivez tout, ce sera long, alors je vais vous le présenter ici.

De plus, les méthodes disponibles dans le type str de Python prennent en charge la plupart des méthodes, à l'exception de celles qui sont linguistiquement irréalisables ou difficiles à implémenter.

Si vous avez commencé à programmer à partir de Python, n'est-ce pas relativement pratique car vous pourrez utiliser des chaînes en Python que vous connaissez bien?

Vous pouvez implémenter cette méthode, n'est-il pas préférable d'implémenter cette méthode? Si c'est du kotlin, faites-moi savoir si c'est beau d'écrire comme ça.

Nous t'attendons.

Si tel est le cas, je serais ravi de signaler un bug.

En passant, depuis que j'ai créé une version Swift de la bibliothèque dans le passé, je peux peut-être copier la plupart des traitements autour des opérations de chaînes de caractères sur iOS et Android. (Parce que la grammaire de Swift et de kotlin est assez similaire) https://qiita.com/ChanTsune/items/bd611a4c778c0fb338e6

Recommended Posts

Je veux manipuler des chaînes dans Kotlin comme Python!
Je veux faire le test de Dunnett en Python
Je veux fusionner des dictionnaires imbriqués en Python
Je veux afficher la progression en Python!
Je veux écrire en Python! (1) Vérification du format de code
Je souhaite intégrer une variable dans une chaîne Python
Je veux facilement implémenter le délai d'expiration en python
Je veux écrire en Python! (2) Écrivons un test
Même avec JavaScript, je veux voir Python `range ()`!
Je veux échantillonner au hasard un fichier avec Python
Je veux travailler avec un robot en python.
Je veux écrire en Python! (3) Utiliser des simulacres
Je veux utiliser le jeu de données R avec python
Je veux faire quelque chose avec Python à la fin
Je veux déboguer avec Python
Je veux pouvoir exécuter Python avec VS Code
Je veux ajouter un joli complément à input () en python
J'ai essayé d'implémenter PLSA en Python
J'ai essayé d'implémenter la permutation en Python
Je veux imprimer dans la notation d'inclusion
J'ai essayé d'implémenter PLSA dans Python 2
Je veux utiliser jar de python
Je veux analyser les journaux avec Python
Je veux jouer avec aws avec python
[Couches Python / AWS Lambda] Je souhaite réutiliser uniquement le module dans AWS Lambda Layers
J'ai essayé d'implémenter ADALINE en Python
Je voulais résoudre ABC159 avec Python
J'ai essayé d'implémenter PPO en Python
Je souhaite convertir une table convertie en PDF en Python en CSV
Je veux convertir par lots le résultat de "chaîne de caractères" .split () en Python
Maintenance de l'environnement réalisée avec Docker (je souhaite post-traiter GrADS en Python
Je veux faire un patch monkey seulement en partie en toute sécurité avec Python
3 façons d'analyser les chaînes de temps avec python [Note]
Je veux utiliser MATLAB feval avec python
Je veux corriger Datetime.now dans le test de Django
Je veux mémoriser, y compris les arguments de mots clés de Python
Python: j'ai pu récurer en lambda
Je souhaite envoyer un e-mail depuis Gmail en utilisant Python.
J'ai écrit "Introduction à la vérification des effets" en Python
Je souhaite stocker les informations de la base de données dans la liste
J'ai essayé d'implémenter TOPIC MODEL en Python
Je souhaite utiliser le répertoire temporaire avec Python2
Je veux utiliser le solveur ceres de python
#Unresolved Je veux compiler gobject-introspection avec Python3
Je veux résoudre APG4b avec Python (chapitre 2)
Je souhaite vendre les produits que j'ai listés par python scraping Mercari
[Python] Je veux gérer 7DaysToDie depuis Discord! 2/3
Je veux créer du code C ++ à partir de code Python!
J'ai essayé d'implémenter le tri sélectif en python
Je veux écrire dans un fichier avec Python
Comparer des chaînes en Python
Inverser les chaînes en Python
Je veux améliorer l'efficacité avec Python même dans un système expérimental (3) Je veux faire quelque chose comme Excel avec Pandas
Je souhaite créer une file d'attente prioritaire pouvant être mise à jour avec Python (2.7)
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4
[Python] Je souhaite rassembler des fichiers spécifiques dispersés dans chaque dossier au même endroit
J'ai essayé de représenter graphiquement les packages installés en Python
Même les débutants veulent dire "Je comprends parfaitement Python"
Je veux répéter plusieurs fois un générateur Python
Je veux générer rapidement UUID (memo memo) ~ Edition Python ~
Je veux faire la transition avec un bouton sur le ballon