Listen Sie Split- und Join-Zeichenfolgen mit Split und Join auf (Perl / PowerShell / Java / Kotlin / Python).

Bei der Verarbeitung von Text (insbesondere Textdateien im gemusterten Format) wird "split" verwendet, um eine Zeichenfolge durch ein bestimmtes Zeichen in eine Liste zu unterteilen, und "join", um eine Liste mit einem bestimmten Zeichen zu einer Zeichenfolge zu kombinieren Ich persönlich denke, dass es einen großen Unterschied in der Arbeitszeit geben wird, je nachdem, ob Sie es beherrschen oder nicht, aber da jede Sprache eine leichte Angewohnheit hat, habe ich versucht, die grundlegende Verwendung zusammenzufassen.

Sprache Ausführung 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

Die Version ist die des Compilers / Interpreters. Betriebssystem ist die Ausführungsumgebung.

split

Im Beispiel wird eine durch Kommas getrennte Zeichenfolge durch Leerzeichen geteilt. Reguläre Ausdrücke können in jeder Sprache verwendet werden, Kotlin / Python erfordert jedoch die Verwendung einer separaten Bibliothek.

Perl

#!/usr/bin/perl

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

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

Ausführungsergebnis

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

PowerShell

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

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

Ausführungsergebnis

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

Die Quellcodierung ist Shift-JIS

Java

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

Ausführungsergebnis

Motomachi / Chinatown
Japan Boulevard
Bashamichi
Minato Mirai
Yokohama

Kotlin

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

Ausführungsergebnis

Motomachi / Chinatown
Japan Boulevard
Bashamichi
Minato Mirai
Yokohama

Im Gegensatz zu Java können reguläre Ausdrücke nicht so verwendet werden, wie sie sind, und Sie müssen eine Regex-Instanz erstellen.

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

Python2

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

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

for i in item:
    print i

Die Ausgabe ist wie folgt

Motomachi / Chinatown
Japan Boulevard
Bashamichi
Minato Mirai
Yokohama

Sie müssen "re" importieren, um reguläre Ausdrücke zu verwenden.

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

Python3

Ähnlich wie Python2.

#!/usr/bin/python3

string = "Motomachi / Chinatown,Japan Boulevard,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

Deklarieren Sie für jede Sprache ein "item" -Array, das dem oben unter "split" aufgeführten Array entspricht, "join with", ", add "` before and after "und" quote ". Ein Code, der die Zeichenfolgen durch Kommas voneinander trennt. (Das Hinzufügen von "" vor und nach wird durch einfache Verkettung von Zeichenfolgen verarbeitet)

Perl

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

Ausführungsergebnis

"Motomachi / Chinatown","Japan Boulevard","Bashamichi","Minato Mirai","Yokohama"

PowerShell

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

Ausführungsergebnis

"Motomachi / Chinatown","Japan Boulevard","Bashamichi","Minato Mirai","Yokohama"

Java

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

Ausführungsergebnis

"Motomachi / Chinatown","Japan Boulevard","Bashamichi","Minato Mirai","Yokohama"

Kotlin

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

Ausführungsergebnis

"Motomachi / Chinatown","Japan Boulevard","Bashamichi","Minato Mirai","Yokohama"

Python2

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

Python3

Dies ist auch dasselbe wie Python 2

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

Ausführungsergebnis

"Motomachi / Chinatown","Japan Boulevard","Bashamichi","Minato Mirai","Yokohama"

Recommended Posts

Listen Sie Split- und Join-Zeichenfolgen mit Split und Join auf (Perl / PowerShell / Java / Kotlin / Python).
Lösen mit Ruby, Perl, Java und Python AtCoder ATC 002 A.
Lösen mit Ruby, Perl, Java und Python AtCoder ATC 002 B.
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 065 C-te Potenz
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 107 B String-Manipulation
Lösen mit Ruby, Perl, Java und Python AtCoder AGC 033 Eine Suche mit Breitenpriorität
Lösen mit Ruby, Perl, Java und Python AtCoder ARC 098 C Kumulative Summe
Lösen mit Ruby, Perl, Java und Python AtCoder CADDi 2018 C Primfaktorisierung
AtCoder ABC 165 D Bodenfunktion in Ruby, Perl, Java und Python gelöst
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 131 D Sortieren von Arrays
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 047 C Regulärer Ausdruck
MessagePack-Versuchen Sie, Java und Python mit RPC zu verbinden
Konvertieren Sie die Zeichenfolge mit Python in ein zeichenweises Listenformat
C-Sprache, Java, Python-Benchmarks mit Primfaktorisierung
Python und Ruby teilen sich
Untersuchen Sie den Java- und Python-Datenaustausch mit Apache Arrow
Liste mit Python initialisieren
Bildschirm und geteilter Bildschirm mit Python- und SSH-Anmeldung am Remote-Server
[Python] Zusammenfassung der Verwendung von Split- und Join-Funktionen
Lösen mit Ruby und Python AtCoder ABC138 D Benachbarte Liste
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
3-3, Python-Zeichenfolge und Zeichencode
Python und Hardware-Verwenden von RS232C mit Python-
Ich habe Java und Python verglichen!
Python-Memo mit Perl --join
Python-Liste und Tapples und Kommas
Python-Listeneinschlussnotation und Generator
Python mit Pyenv und Venv
Funktioniert mit Python und R.
Extrahieren Sie das Bigquery-Dataset und die Tabellenliste mit Python und geben Sie es in CSV aus
AtCoder ARC104 B Kumulative Summe in Ruby, Python und Java gelöst
Lösen mit Ruby, Python und networkx AtCoder ABC168 D Benachbarte Liste
Kommunizieren Sie mit FX-5204PS mit Python und PyUSB
Unterschied zwischen Ruby und Python Split
Leuchtendes Leben mit Python und OpenCV
Unterschied zwischen Java und Python (Memo)
Installieren Sie Python 2.7.9 und Python 3.4.x mit pip.
Unterschied zwischen list () und [] in Python
Perl-Objekt und Python-Klasse Teil 2.
Neuronales Netzwerk mit OpenCV 3 und Python 3
AM-Modulation und Demodulation mit Python
Scraping mit Node, Ruby und Python
Kratzen mit Python und schöner Suppe
Konvertieren Sie die Liste mit Python in DataFrame
JSON-Codierung und -Decodierung mit Python
[Python] Verbinde zwei Tabellen mit Pandas
Hadoop-Einführung und MapReduce mit Python
[GUI in Python] PyQt5-Drag & Drop-
Lesen und Schreiben von NetCDF mit Python
[Anfänger] Extrahieren Sie Zeichenketten mit Python
Ich habe mit PyQt5 und Python3 gespielt
Perl-Objekt und Python-Klasse Teil 1.
Lesen und Schreiben von CSV mit Python
Mehrfachintegration mit Python und Sympy
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Sugoroku-Spiel und Zusatzspiel mit Python
FM-Modulation und Demodulation mit Python
Herausforderung beim Erstellen eines Zeitachsenlistenberichts mit der Toggl-API und Python