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