Répertorier les chaînes de fractionnement et de jointure avec fractionnement et jointure (Perl / PowerShell / Java / Kotlin / Python)

Lors du traitement de texte (en particulier des fichiers texte au format à motifs), split qui divise une chaîne de caractères en une liste par un caractère spécifié et join qui combine une liste par un caractère spécifié en une chaîne de caractères Personnellement, je pense qu'il y aura une grande différence de temps de travail selon que vous pouvez le maîtriser ou non, mais comme chaque langue a une légère habitude, j'ai essayé de résumer l'usage de base.

Langue version OS
Perl 5.26.1 Ubuntu 18.04
PowerShell 5.1.17763.316 Windows 10 home
Java 1.8.0_131 Windows 10 home
Kotlin 1.3.21 Android 7.0
Python2 2.7.15 Ubuntu 18.04
Python3 3.6.7 Ubuntu 18.04

La version est celle du compilateur / interpréteur. OS est l'environnement d'exécution.

split

L'exemple divise une chaîne séparée par des virgules avec des espaces. Les expressions régulières peuvent être utilisées dans n'importe quel langage, mais Kotlin / Python nécessite l'utilisation d'une bibliothèque séparée.

Perl

#!/usr/bin/perl

my $string = "Motomachi / Chinatown,Boulevard du Japon,Bashamichi,Minato Mirai,Yokohama";
my @item = split /,\s*/, $string;

for my $i (@item) {
    print $i, "\n";
}

Résultat d'exécution

$ ./split.pl
Motomachi / Chinatown
Boulevard du Japon
Bashamichi
Minato Mirai
Yokohama

PowerShell

$string = "Motomachi / Chinatown,Boulevard du Japon,Bashamichi,Minato Mirai,Yokohama"
$item = $string -split ",\s*"

foreach ($i in $item) {
    Write-Output $i
}

Résultat d'exécution

PS C:\Users\zaki\src\share> .\split.ps1
Motomachi / Chinatown
Boulevard du Japon
Bashamichi
Minato Mirai
Yokohama
PS C:\Users\zaki\src\share>

L'encodage source est Shift-JIS

Java

    private static void sprit_example() {
        String string = "Motomachi / Chinatown,Boulevard du Japon,Bashamichi,Minato Mirai,Yokohama";
        String[] item = string.split(",\\s*");
        for (String i : item) {
            System.out.println(i);
        }
    }

Résultat d'exécution

Motomachi / Chinatown
Boulevard du Japon
Bashamichi
Minato Mirai
Yokohama

Kotlin

fun split_join() {
    val string: String = "Motomachi / Chinatown,Boulevard du Japon,Bashamichi,Minato Mirai,Yokohama"
    val item = string.split(",")
    for (i in item) {
        println(i)
    }
}

Résultat d'exécution

Motomachi / Chinatown
Boulevard du Japon
Bashamichi
Minato Mirai
Yokohama

Contrairement à Java, les expressions régulières ne peuvent pas être utilisées telles quelles, et vous devez créer une instance Regex.

fun split_regexp() {
    val string: String = "Motomachi / Chinatown,Boulevard du Japon,Bashamichi,Minato Mirai,Yokohama"
    val item = string.split(Regex(",\\s*"))
    for (i in item) {
        println(i)
    }
}
Motomachi / Chinatown
Boulevard du Japon
Bashamichi
Minato Mirai
Yokohama

Python2

#!/usr/bin/python2
# -*- coding: utf-8 -*-

string = "Motomachi / Chinatown,Boulevard du Japon,Bashamichi,Minato Mirai,Yokohama"
item = string.split(", ")

for i in item:
    print i

La sortie est la suivante

Motomachi / Chinatown
Boulevard du Japon
Bashamichi
Minato Mirai
Yokohama

Vous devez importer re pour utiliser des expressions régulières.

import re
item = re.split(r',\s*', string)
for i in item:
    print i

Python3

Similaire à Python2.

#!/usr/bin/python3

string = "Motomachi / Chinatown,Boulevard du Japon,Bashamichi,Minato Mirai,Yokohama"
item = string.split(", ")

for i in item:
    print(i)


import re
item = re.split(r',\s*', string)
for i in item:
    print(i)

join

Chaque langue déclare un tableau ʻitem équivalent à celui listé dans split ci-dessus, "joint avec", "ʻet ajoute" avant et après" à "guillemet" Un code qui sépare les chaînes les unes des autres par des virgules. (L'ajout de «» »avant et après est traité par simple concaténation de chaîne)

Perl

my @item = ("Motomachi / Chinatown", "Boulevard du Japon", "Bashamichi", "Minato Mirai", "Yokohama");
my $join = '"' . (join '","', @item) . '"';
print $join, "\n";

Résultat d'exécution

"Motomachi / Chinatown","Boulevard du Japon","Bashamichi","Minato Mirai","Yokohama"

PowerShell

$item = @("Motomachi / Chinatown", "Boulevard du Japon", "Bashamichi", "Minato Mirai", "Yokohama")
$join = '"' + ($item -join '","') + '"'
Write-Output $join

Résultat d'exécution

"Motomachi / Chinatown","Boulevard du Japon","Bashamichi","Minato Mirai","Yokohama"

Java

String item[] = {"Motomachi / Chinatown", "Boulevard du Japon", "Bashamichi", "Minato Mirai", "Yokohama"};
String join = "\"" + String.join("\",\"", item) + "\"";
System.out.println(join);

Résultat d'exécution

"Motomachi / Chinatown","Boulevard du Japon","Bashamichi","Minato Mirai","Yokohama"

Kotlin

val item = arrayOf("Motomachi / Chinatown", "Boulevard du Japon", "Bashamichi", "Minato Mirai", "Yokohama")
val join = '"' + item.joinToString(separator = "\",\"") + '"'
println(join)

Résultat d'exécution

"Motomachi / Chinatown","Boulevard du Japon","Bashamichi","Minato Mirai","Yokohama"

Python2

item = ["Motomachi / Chinatown", "Boulevard du Japon", "Bashamichi", "Minato Mirai", "Yokohama"]
join = '"' + '","'.join(item) + '"'
print join
"Motomachi / Chinatown","Boulevard du Japon","Bashamichi","Minato Mirai","Yokohama"

Python3

C'est aussi la même chose que Python 2

item = ["Motomachi / Chinatown", "Boulevard du Japon", "Bashamichi", "Minato Mirai", "Yokohama"]
join = '"' + '","'.join(item) + '"'
print(join)

Résultat d'exécution

"Motomachi / Chinatown","Boulevard du Japon","Bashamichi","Minato Mirai","Yokohama"

Recommended Posts

Répertorier les chaînes de fractionnement et de jointure avec fractionnement et jointure (Perl / PowerShell / Java / Kotlin / Python)
Résolution avec Ruby, Perl, Java et Python AtCoder ATC 002 A
Résolution avec Ruby, Perl, Java et Python AtCoder ATC 002 B
Résolution avec Ruby, Perl, Java et Python AtCoder ABC 065 C-th power
Résolution avec Ruby, Perl, Java et Python AtCoder ABC 107 B Manipulation de chaînes
Résolution avec Ruby, Perl, Java et Python AtCoder AGC 033 A Recherche de priorité de largeur
Résolution avec Ruby, Perl, Java et Python AtCoder ARC 098 C Somme cumulative
Résolution avec Ruby, Perl, Java et Python AtCoder CADDi 2018 C factorisation premier
AtCoder ABC 165 D Floor Function résolue en Ruby, Perl, Java et Python
Résolution avec Ruby, Perl, Java et Python AtCoder ABC 131 D Tri des tableaux
Résolution avec Ruby, Perl, Java et Python AtCoder ABC 047 C Expression régulière
MessagePack-Try pour lier Java et Python avec RPC
Convertir une chaîne au format de liste caractère par caractère avec python
Benchmarks langage C, Java, Python avec factorisation prime
Python et Ruby se séparent
Étudiez l'échange de données Java et Python avec Apache Arrow
Initialiser la liste avec python
écran et écran partagé avec connexion python et ssh au serveur distant
[Python] Résumé de l'utilisation des fonctions de fractionnement et de jointure
Résolution avec Ruby et Python AtCoder ABC138 D Liste adjacente
Programmation avec Python et Tkinter
Chiffrement et déchiffrement avec Python
3-3, chaîne Python et code de caractère
Python et matériel - Utilisation de RS232C avec Python -
J'ai comparé Java et Python!
mémo python utilisant perl --join
Liste Python et tapples et virgules
Notation et générateur d'inclusion de liste Python
python avec pyenv et venv
Fonctionne avec Python et R
Extraire le jeu de données bigquery et la liste des tables avec python et la sortie en CSV
AtCoder ARC104 B Somme cumulative résolue en Ruby, Python et Java
Résolution avec Ruby, Python et networkx AtCoder ABC168 D Liste adjacente
Communiquez avec FX-5204PS avec Python et PyUSB
Différence entre Ruby et Python Split
Briller la vie avec Python et OpenCV
Différence entre java et python (mémo)
Installez Python 2.7.9 et Python 3.4.x avec pip.
Différence entre list () et [] en Python
objet perl et classe python partie 2.
Réseau neuronal avec OpenCV 3 et Python 3
Modulation et démodulation AM avec python
Scraping avec Node, Ruby et Python
Grattage avec Python et belle soupe
Convertir la liste en DataFrame avec python
Encodage et décodage JSON avec python
[Python] Joindre deux tables avec des pandas
Introduction à Hadoop et MapReduce avec Python
[GUI en Python] PyQt5-Glisser-déposer-
Lire et écrire NetCDF avec Python
[Débutant] Extraire des chaînes de caractères avec Python
J'ai joué avec PyQt5 et Python3
objet perl et classe python partie 1.
Lire et écrire du CSV avec Python
Intégration multiple avec Python et Sympy
Coexistence de Python2 et 3 avec CircleCI (1.0)
Jeu Sugoroku et jeu d'addition avec Python
Modulation et démodulation FM avec Python
Défi pour créer un rapport de liste de l'axe des temps avec l'API Toggl et Python