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