Vergleich von Programmiersprachen (Stringfunktionen)
Zeichenfolgenfunktionen werden in Computerprogrammiersprachen verwendet, um eine Zeichenfolge zu bearbeiten oder Informationen über eine Zeichenfolge abzufragen (einige tun beides).
Die meisten Programmiersprachen, die einen String-Datentyp haben, haben einige String-Funktionen, obwohl es innerhalb jeder Sprache andere Low-Level-Möglichkeiten geben kann, Strings direkt zu handhaben. In objektorientierten Sprachen werden String-Funktionen oft als Eigenschaften und Methoden von String-Objekten implementiert. In funktionalen und listenbasierten Sprachen wird eine Zeichenfolge als Liste (von Zeichencodes) dargestellt, daher könnten alle Listenmanipulationsverfahren als Zeichenfolgenfunktionen betrachtet werden. Solche Sprachen können jedoch auch eine Teilmenge expliziter string-spezifischer Funktionen implementieren.
Für Funktionen, die Strings manipulieren, haben moderne objektorientierte Sprachen wie C# und Java unveränderliche Strings und geben eine Kopie zurück (in neu zugewiesenen dynamischen Speicher), während andere, wie C, den ursprünglichen String manipulieren, es sei denn, der Programmierer kopiert Daten in einen neuen String. Siehe zum Beispiel Verkettung unten.
Das einfachste Beispiel für eine String-Funktion ist die length(string)
Funktion. Diese Funktion gibt die Länge eines String-Literals zurück.
- z.B
length("hello world")
würde zurückkehren 11.
Andere Sprachen können Zeichenfolgenfunktionen mit ähnlicher oder genau derselben Syntax oder Parametern oder Ergebnissen haben. Zum Beispiel wird die Längenfunktion in vielen Sprachen normalerweise dargestellt als len(string). Die folgende Liste der allgemeinen Funktionen soll dazu beitragen, diese Verwirrung einzudämmen.
Allgemeine Zeichenfolgenfunktionen (mehrsprachige Referenz)[edit]
String-Funktionen, die in vielen Sprachen gebräuchlich sind, sind unten aufgeführt, einschließlich der verschiedenen verwendeten Namen. Die folgende Liste allgemeiner Funktionen soll Programmierern helfen, die äquivalente Funktion in einer Sprache zu finden. Beachten Sie, dass die Verkettung von Zeichenfolgen und reguläre Ausdrücke auf separaten Seiten behandelt werden. Angaben in Guillemets (« … ») sind optional.
CharAt[edit]
Definition | charAt(string,integer) gibt Zeichen zurück.
|
---|---|
Beschreibung | Gibt das Zeichen am Index in der Zeichenfolge zurück. |
Äquivalent | Siehe Teilstring der Länge 1 Zeichen. |
Format | Sprachen | Basisindex |
---|---|---|
string[i]
|
ALGOL 68, APL, Julia, Pascal, Object Pascal (Delphi), Seed7 | 1 |
string[i]
|
C, C++, C#, Cobra, D, FreeBASIC, Go, Python,[1]PHP, Rubin,[1]Windows PowerShell, JavaScript, APL | 0 |
string{i}
|
PHP (veraltet in 5.3) | 0 |
string(i)
|
Ada | ≥1 |
Mid(string,i,1)
|
VB | 1 |
MID$(string,i,1)
|
BASIC | 1 |
string.Chars(i)
|
VB.NET | 0 |
string(i:i)
|
Fortran | 1 |
string.charAt(i)
|
Java, JavaScript | 0 |
string.[i]
|
OCaml, F# | 0 |
string.chars().nth(i)
|
Rost[2] | 0 |
string[i,1]
|
Wählen Sie Basic | 1 |
String.sub (string, i)
|
Standard-ML | 0 |
string !! i
|
Haskell | 0 |
(string-ref string i)
|
Planen | 0 |
(char string i)
|
Gemeinsame Lisp | 0 |
(elt string i)
|
ISLISP | 0 |
(get string i)
|
Clojure | 0 |
substr(string, i, 1)
|
Perl 5[1] | 0 |
substr(string, i, 1) string.substr(i, 1)
|
Raku[3] | 0 |
substr(string, i, 1)
|
PL/I | 1 |
string.at(i)
|
C++ (STL) (mit Grenzüberprüfung) | 0 |
lists:nth(i, string)
|
Erlang | 1 |
[string characterAtIndex:i]
|
Ziel c (NSString * nur)
|
0 |
string.sub(string, i, i)
|
Lua[1] | 1 |
string at: i
|
Smalltalk (mit Grenzüberprüfung) | 1 |
string index string i
|
Tcl | 0 |
StringTake[string, {i}]
|
Mathematica, Wolfram-Sprache[1] | 1 |
string@i
|
Eiffel | 1 |
string (i:1)
|
COBOL | 1 |
i⌷string
|
APL | 0 oder 1 |
{ Example in Pascal }
var
MyStr: string = 'Hello, World';
MyChar: Char;
begin
MyChar := MyStr[2]; // 'e'
# Example in ALGOL 68 # "Hello, World"[2]; // 'e'
// Example in C
#include // for printf
char MyStr[] = "Hello, World";
printf("%c", *(MyStr+1)); // 'e'
printf("%c", *(MyStr+7)); // 'W'
printf("%c", MyStr[11]); // 'd'
printf("%s", MyStr); // 'Hello, World'
printf("%s", "Hello(2), World(2)"); // 'Hello(2), World(2)'
// Example in C++
#include // for "cout"
#include // for "string" data type
using namespace std;
char MyStr1[] = "Hello(1), World(1)";
string MyStr2 = "Hello(2), World(2)";
cout << "Hello(3), World(3)"; // 'Hello(3), World(3)'
cout << MyStr2[6]; // '2'
cout << MyStr1.substr (5, 3); // '(1)'
// Example in C#
"Hello, World"[2]; // 'l'
# Example in Perl 5
substr("Hello, World", 1, 1); # 'e'
# Examples in Python
"Hello, World"[2] # 'l'
"Hello, World"[-3] # 'r'
# Example in Raku
"Hello, World".substr(1, 1); # 'e'
' Example in Visual Basic
Mid("Hello, World",2,1)
' Example in Visual Basic .NET
"Hello, World".Chars(2) ' "l"c
" Example in Smalltalk "
'Hello, World' at: 2. "$e"
//Example in Rust
"Hello, World".chars().nth(2); // Some('l')
Vergleichen (Ganzzahlergebnis)[edit]
Definition | compare(string1,string2) gibt ganze Zahl zurück.
|
---|---|
Beschreibung | Vergleicht zwei Strings miteinander. Wenn sie gleichwertig sind, wird eine Null zurückgegeben. Andernfalls geben die meisten dieser Routinen ein positives oder negatives Ergebnis zurück, je nachdem, ob string1 ist lexikographisch größer als bzw. kleiner als string2. Die Ausnahmen sind die Scheme- und Rexx-Routinen, die den Index der ersten Nichtübereinstimmung zurückgeben, und Smalltalk, die einen Vergleichscode beantworten, der angibt, wie der Empfänger relativ zum String-Parameter sortiert. |
Format | Sprachen |
---|---|
IF string1<string2 THEN -1 ELSE ABS (string1>string2) FI
|
ALGOL 68 |
cmp(string1, string2)
|
Python 2 |
(string1 > string2) - (string1 < string2)
|
Python |
strcmp(string1, string2)
|
C, PHP |
std.string.cmp(string1, string2)
|
D |
StrComp(string1, string2)
|
VB, Object Pascal (Delphi) |
string1 cmp string2
|
Perl, Raku |
string1 compare: string2
|
Smalltalk (Quietsch, Pharo) |
string1 <=> string2
|
Rubin, C++ (STL, C++20)[4] |
string1.compare(string2)
|
C++ (STL), Swift (Grundlage) |
compare(string1, string2)
|
Rexx, Seed7 |
CompareStr(string1, string2)
|
Pascal, Objektpascal (Delphi) |
string1.compareTo(string2)
|
Kobra, Java |
string1.CompareTo(string2)
|
VB.NET, C#, F# |
(compare string1 string2)
|
Clojure |
(string= string1 string2)
|
Gemeinsame Lisp |
(string-compare string1 string2 p< p= p>)
|
Schema (SRFI 13) |
(string= string1 string2)
|
ISLISP |
compare string1 string2
|
OCaml |
String.compare (string1, string2)
|
Standard-ML[5] |
compare string1 string2
|
Haskell[6] |
[string]::Compare(string1, string2)
|
Windows PowerShell |
[string1 compare:string2]
|
Ziel c (NSString * nur)
|
LLT(string1,string2)
|
Fortran[7] |
string1.localeCompare(string2)
|
JavaScript |
bytes.Compare([]byte(string1), []byte(string2))
|
gehen |
string compare ?-nocase? ?-length int? string1 string2
|
Tcl |
compare(string1,string2,count)
|
PL/I[8] |
string1.cmp(string2)
|
Rost[9] |
# Example in Perl 5
"hello" cmp "world"; # returns -1
# Example in Python
cmp("hello", "world") # returns -1
# Examples in Raku
"hello" cmp "world"; # returns Less
"world" cmp "hello"; # returns More
"hello" cmp "hello"; # returns Same
/** Example in Rexx */
compare("hello", "world") /* returns index of mismatch: 1 */
; Example in Scheme
(use-modules (srfi srfi-13))
; returns index of mismatch: 0
(string-compare "hello" "world" values values values)
Vergleichen (relationaler Operator-basiert, boolesches Ergebnis)[edit]
Definition | string1 OP string2 ODER (compare string1 string2) gibt Boolean zurück.
|
---|---|
Beschreibung | Vergleicht lexikografisch zwei Zeichenfolgen mithilfe eines relationalen Operators oder einer relationalen Funktion. Boolesches Ergebnis zurückgegeben. |
Format | Sprachen |
---|---|
string1 OP string2 , wo OP kann jeder sein =, <>, <, >, <= und >=
|
Pascal, Object Pascal (Delphi), OCaml, Seed7, Standard ML, BASIC, VB, VB .NET, F# |
string1 OP string2 , wo OP kann jeder sein =, /=, ≠, <, >, <=, ≤ und ≥ ; Ebenfalls: EQ, NE, LT, LE, GE und GT
|
ALGOL 68 |
(stringOP? string1 string2) , wo OP kann jeder sein =, -ci=, <, -ci<, >, -ci>, <=, -ci<=, >= und -ci>= (Operatoren beginnend mit '-ci ' Groß-/Kleinschreibung wird nicht beachtet)
|
Planen |
(stringOP string1 string2) , wo OP kann jeder sein =, -ci=, <>, -ci<>, <, -ci<, >, -ci>, <=, -ci<=, >= und -ci>= (Operatoren beginnend mit '-ci ' Groß-/Kleinschreibung wird nicht beachtet)
|
Schema (SRFI 13) |
(stringOP string1 string2) , wo OP kann jeder sein =, -equal, /=, -not-equal, <, -lessp, >, -greaterp, <=, -not-greaterp, >= und -not-lessp (bei den verbalen Operatoren wird die Groß-/Kleinschreibung nicht beachtet)
|
Gemeinsame Lisp |
(stringOP string1 string2) , wo OP kann jeder sein =, /=, <, >, <=, und >=
|
ISLISP |
string1 OP string2 , wo OP kann jeder sein =, =, <, >, <= und >=
|
Rexx |
string1 OP string2 , wo OP kann jeder sein =, ¬=, <, >, <=, >=, ¬< und ¬>
|
PL/I |
string1 OP string2 , wo OP kann jeder sein =, /=, <, >, <= und >=
|
Ada |
string1 OP string2 , wo OP kann jeder sein ==, /=, <, >, =< und >=
|
Erlang |
string1 OP string2 , wo OP kann jeder sein ==, /=, <, >, <= und >=
|
Haskell |
string1 OP string2 , wo OP kann jeder sein eq, ne, lt, gt, le und ge
|
Perl, Raku |
string1 OP string2 , wo OP kann jeder sein ==, !=, <, >, <= und >=
|
C++ (STL), C#, D, Go, JavaScript, Python, PHP, Ruby, Rust,[10]Schnell |
string1 OP string2 , wo OP kann jeder sein -eq, -ceq, -ne, -cne, -lt, -clt, -gt, -cgt, -le, -cle, -ge, und -cge (Operatoren beginnend mit 'c ' Groß-/Kleinschreibung beachten)
|
Windows PowerShell |
string1 OP string2 , wo OP kann jeder sein ==, ~=, <, >, <= und >=
|
Lua |
string1 OP string2 , wo OP kann jeder sein =, ~=, <, >, <= und >=
|
Smalltalk |
string1 OP string2 , wo OP kann jeder sein ==, /=, <, >, <= und >=; Also: .EQ., .NE., .LT., .LE., .GT. und .GE.
|
Fortran.[11] |
string1 OP string2 wo OP kann jeder sein =, <>, <, >, <=, >= sowie formulierte Äquivalente
|
COBOL |
string1 OP string2 wo OP kann jeder sein ==, <>, <, >, <= und >=
|
Kobra |
string1 OP string2 ist in der Syntax vorhanden, bedeutet aber den Vergleich der Zeiger, die auf die Strings zeigen, nicht des String-Inhalts. Verwenden Sie die Funktion Vergleichen (ganzzahliges Ergebnis).
|
C, Java |
string1.METHOD(string2) wo METHOD ist einer von eq , ne , gt , lt , ge , le
|
Rost[10] |
% Example in Erlang
"hello" > "world". % returns false
# Example in Raku
"art" gt "painting"; # returns False
"art" lt "painting"; # returns True
# Example in Windows PowerShell
"hello" -gt "world" # returns false
;; Example in Common Lisp
(string> "art" "painting") ; returns nil
(string< "art" "painting") ; returns non nil
Verkettung[edit]
Definition | concatenate(string1,string2) gibt Zeichenfolge zurück.
|
---|---|
Beschreibung | Verkettet (verbindet) zwei Strings miteinander und gibt den kombinierten String zurück. Beachten Sie, dass einige Sprachen wie C veränderliche Zeichenfolgen haben, sodass die zweite Zeichenfolge tatsächlich an die erste Zeichenfolge angehängt und die mutierte Zeichenfolge zurückgegeben wird. |
Format | Sprachen |
---|---|
string1 & string2
|
Ada, FreeBASIC, Seed7, BASIC, VB, VB .NET, COBOL (nur zwischen Literalen) |
strcat(string1, string2)
|
C, C++ (char * nur)[12] |
string1 . string2
|
Perl, PHP |
string1 + string2
|
ALGOL 68, C++ (STL), C#, Cobra, FreeBASIC, Go, Pascal, Object Pascal (Delphi), Java, JavaScript, Windows PowerShell, Python, Ruby, Rust,[13]F#, Swift, Turing, VB |
string1 ~ string2
|
D, Raku |
(string-append string1 string2)
|
Schema, ISLISP |
(concatenate 'string string1 string2)
|
Gemeinsame Lisp |
(str string1 string2)
|
Clojure |
string1 || string2
|
Rexx, SQL, PL/I |
string1 // string2
|
Fortran |
string1 ++ string2
|
Erlang, Haskell |
string1 ^ string2
|
OCaml, Standard-ML, F# |
[string1 stringByAppendingString:string2]
|
Ziel c (NSString * nur)
|
string1 .. string2
|
Lua |
string1 , string2
|
Smalltalk, APL |
string1 string2
|
SNOBOL |
string1string2
|
Bash-Shell |
string1 <> string2
|
Mathematik |
concat Schnur1 Schnur2 | Tcl |
{ Example in Pascal }
'abc' + 'def'; // returns "abcdef"
// Example in C#
"abc" + "def"; // returns "abcdef"
' Example in Visual Basic
"abc" & "def" ' returns "abcdef"
"abc" + "def" ' returns "abcdef"
"abc" & Null ' returns "abc"
"abc" + Null ' returns Null
// Example in D
"abc" ~ "def"; // returns "abcdef"
;; Example in common lisp
(concatenate 'string "abc " "def " "ghi") ; returns "abc def ghi"
# Example in Perl 5
"abc" . "def"; # returns "abcdef"
"Perl " . 5; # returns "Perl 5"
# Example in Raku
"abc" ~ "def"; # returns "abcdef"
"Perl " ~ 6; # returns "Raku"
Enthält[edit]
Definition | contains(string,substring) gibt boolean zurück
|
---|---|
Beschreibung | Gibt zurück, ob Schnur enthält Teilzeichenfolge als Teilzeichenfolge. Dies entspricht der Verwendung von Find und der anschließenden Feststellung, dass dies nicht zu der in der dritten Spalte des Abschnitts Find aufgeführten Fehlerbedingung führt. Einige Sprachen haben jedoch eine einfachere Möglichkeit, diesen Test auszudrücken. |
Verwandt | Finden |
Format | Sprachen |
---|---|
string_in_string(string, loc int, substring)
|
ALGOL 68 |
ContainsStr(string, substring)
|
Objektpascal (Delphi) |
strstr(string, substring) != NULL
|
C, C++ (char * nur)
|
string.Contains(substring)
|
C#, VB.NET, Windows PowerShell, F# |
string.contains(substring)
|
Kobra, Java (1.5+), Raku, Rost,[14]C++ (C++23)[15] |
string.indexOf(substring) >= 0
|
JavaScript |
strpos(string, substring) !== false
|
PHP |
pos(string, substring) <> 0
|
Samen7 |
substring in string
|
Kobra, Python (2.3+) |
string.find(string, substring) ~= nil
|
Lua |
string.include?(substring)
|
Rubin |
Data.List.isInfixOf substring string
|
Haskell (GHC 6.6+) |
string includesSubstring: substring
|
Smalltalk (Quietschen, Pharo, Smalltalk/X) |
String.isSubstring substring string
|
Standard-ML |
(search substring string)
|
Gemeinsame Lisp |
(not (null (string-index substring string)))
|
ISLISP |
(substring? substring string)
|
Clojure |
! StringFreeQ[string, substring]
|
Mathematik |
index(string, substring, startpos)>0
|
Fortran, PL/I[16] |
index(string, substring, occurrence)>0
|
Wählen Sie Basic |
strings.Contains(string, substring)
|
gehen |
string.find(substring) != string::npos
|
C++ |
[string containsString:substring]
|
Ziel c (NSString * nur, iOS 8+/OS X 10.10+)
|
string.rangeOfString(substring) != nil
|
Swift (Stiftung) |
∨/substring⍷string
|
APL |
¢ Example in ALGOL 68 ¢ string in string("e", loc int, "Hello mate"); ¢ returns true ¢ string in string("z", loc int, "word"); ¢ returns false ¢
// Example In C#
"Hello mate".Contains("e"); // returns true
"word".Contains("z"); // returns false
# Example in Python
"e" in "Hello mate" # returns true
"z" in "word" # returns false
# Example in Raku
"Good morning!".contains('z') # returns False
"¡Buenos días!".contains('í'); # returns True
" Example in Smalltalk "
'Hello mate' includesSubstring: 'e' " returns true "
'word' includesSubstring: 'z' " returns false "
Gleichberechtigung[edit]
Testet, ob zwei Zeichenfolgen gleich sind. Siehe auch #Vergleichen und #Vergleichen. Beachten Sie, dass die Durchführung von Gleichheitsprüfungen über einen generischen Vergleich mit einem ganzzahligen Ergebnis nicht nur für den Programmierer verwirrend ist, sondern oft auch eine wesentlich teurere Operation ist; dies gilt insbesondere bei der Verwendung von "C-Strings".
Format | Sprachen |
---|---|
string1 == string2
|
Python, C++ (STL), C#, Cobra, Go, JavaScript (Ähnlichkeit), PHP (Ähnlichkeit), Ruby, Rust,[10]Erlang, Haskell, Lua, D, Mathematica, Swift |
string1 === string2
|
JavaScript, PHP |
string1 == string2 or
|
Fortran |
strcmp(string1, string2) == 0
|
C |
(string=? string1 string2)
|
Planen |
(string= string1 string2)
|
Gewöhnliches Lisp, ISLISP |
string1 = string2
|
ALGOL 68, Ada, Object Pascal (Delphi), OCaml, Pascal, Rexx, Seed7, Standard ML, BASIC, VB, VB .NET, F#, Smalltalk, PL/I, COBOL |
test string1 = string2, or
|
Bourne-Muschel |
string1 eq string2
|
Perl, Raku |
string1.equals(string2)
|
Kobra, Java |
string1.Equals(string2)
|
C# |
string1 -eq string2, or
|
Windows PowerShell |
[string1 isEqualToString:string2], or
|
Ziel c (NSString * nur)
|
string1 ≡ string2
|
APL |
string1.eq(string2)
|
Rost[10] |
// Example in C#
"hello" == "world" // returns false
' Example in Visual Basic
"hello" = "world" ' returns false
# Examples in Perl 5
'hello' eq 'world' # returns 0
'hello' eq 'hello' # returns 1
# Examples in Raku
'hello' eq 'world' # returns False
'hello' eq 'hello' # returns True
# Example in Windows PowerShell
"hello" -eq "world" # returns false
⍝ Example in APL
'hello' ≡ 'world' ⍝ returns 0
Finden[edit]
Definition | find(string,substring) gibt ganze Zahl zurück
|
---|---|
Beschreibung | Gibt die Position des Anfangs des ersten Vorkommens von zurück Teilzeichenfolge in Schnur. Wenn die Teilzeichenfolge nicht gefunden wird, geben die meisten dieser Routinen einen ungültigen Indexwert zurück – -1, wenn Indizes 0-basiert sind, 0, wenn sie 1-basiert sind – oder einen Wert, der als Boolean FALSE interpretiert wird. |
Verwandt | instrrev |
Format | Sprachen | Wenn nicht gefunden |
---|---|---|
string in string(substring, pos, string[startpos:])
|
ALGOL 68 | liefert BOOL: TRUE oder FALSE und Position in REF INT pos. |
InStr(«startpos,»string,substring)
|
VB (Positionen beginnen bei 1) | gibt 0 zurück |
INSTR$(string,substring)
|
BASIC (Positionen beginnen bei 1) | gibt 0 zurück |
index(string,substring)
|
AWK | gibt 0 zurück |
index(string,substring«,startpos»)
|
Perl 5 | gibt −1 . zurück |
index(string,substring«,startpos») string.index(substring,«,startpos»)
|
Raku | gibt Nil zurück |
instr(«startpos,»string,substring)
|
FreeBASIC | gibt 0 zurück |
strpos(string,substring«,startpos»)
|
PHP | gibt FALSE zurück |
locate(string, substring)
|
Ingres | gibt Stringlänge + 1 . zurück |
strstr(string, substring)
|
C, C++ (char * nur, gibt Zeiger auf das erste Zeichen zurück)
|
gibt NULL zurück |
std.string.indexOf(string, substring)
|
D | gibt −1 . zurück |
pos(string, substring«, startpos»)
|
Samen7 | gibt 0 zurück |
strings.Index(string, substring)
|
gehen | gibt −1 . zurück |
pos(substring, string)
|
Pascal, Objektpascal (Delphi) | gibt 0 zurück |
pos(substring, string«,startpos»)
|
Rexx | gibt 0 zurück |
string.find(substring«,startpos»)
|
C++ (STL) | gibt std::string::npos zurück |
string.find(substring«,startpos«,endpos»»)
|
Python | gibt −1 . zurück |
string.index(substring«,startpos«,endpos»»)
|
erhöht ValueError | |
string.index(substring«,startpos»)
|
Rubin | gibt null zurück |
string.indexOf(substring«,startpos»)
|
Java, JavaScript | gibt −1 . zurück |
string.IndexOf(substring«,startpos«, charcount»»)
|
VB.NET, C#, Windows PowerShell, F# | gibt −1 . zurück |
string:str(string, substring)
|
Erlang | gibt 0 zurück |
(string-contains string substring)
|
Schema (SRFI 13) | gibt #f . zurück |
(search substring string)
|
Gemeinsame Lisp | gibt NIL zurück |
(string-index substring string)
|
ISLISP | kehrt zurück nil
|
List.findIndex (List.isPrefixOf substring) (List.tails string)
|
Haskell (gibt Just . zurück Index) | gibt nichts zurück |
Str.search_forward (Str.regexp_string substring) string 0
|
OCaml | wirft Not_found . auf |
Substring.size (#1 (Substring.position substring (Substring.full string)))
|
Standard-ML | gibt die Stringlänge zurück |
[string rangeOfString:substring].location
|
Ziel c (NSString * nur)
|
gibt NSNotFound zurück |
string.find(string, substring)
|
Lua | gibt null zurück |
string indexOfSubCollection: substring startingAt: startpos ifAbsent: aBlock
|
Smalltalk (Quietsch, Pharo) | Bewerten Sie einen Block, der eine Blockschließung (oder einen beliebigen Objektverständniswert) ist. gibt 0 zurück |
startpos = INDEX(string, substring «,back» «, kind»)
|
Fortran | gibt 0 zurück, wenn Teilzeichenfolge nicht in Zeichenfolge enthalten ist; gibt LEN(string)+1 zurück, wenn Teilstring leer ist |
POSITION(substring IN string)
|
SQL | gibt 0 zurück (Positionen beginnen bei 1) |
index(string, substring, startpos )
|
PL/I[16] | gibt 0 zurück (Positionen beginnen bei 1) |
index(string, substring, occurrence )
|
Wählen Sie Basic | gibt 0 zurück, wenn das Vorkommen der Teilzeichenfolge nicht in der Zeichenfolge enthalten ist; (Positionen beginnen bei 1) |
string.indexOf(substring«,startpos«, charcount»»)
|
Kobra | gibt −1 . zurück |
string first substring string startpos
|
Tcl | gibt −1 . zurück |
(substring⍷string)⍳1
|
APL | gibt 1 + die letzte Position in zurück Schnur |
string.find(substring)
|
Rost[17] | kehrt zurück None
|
; Examples in Common Lisp
(search "e" "Hello mate") ; returns 1
(search "z" "word") ; returns NIL
// Examples in C#
"Hello mate".IndexOf("e"); // returns 1
"Hello mate".IndexOf("e", 4); // returns 9
"word".IndexOf("z"); // returns -1
# Examples in Raku
"Hello, there!".index('e') # returns 1
"Hello, there!".index('z') # returns Nil
; Examples in Scheme
(use-modules (srfi srfi-13))
(string-contains "Hello mate" "e") ; returns 1
(string-contains "word" "z") ; returns #f
' Examples in Visual Basic
InStr("Hello mate", "e") ' returns 2
InStr(5, "Hello mate", "e") ' returns 10
InStr("word", "z") ' returns 0
" Examples in Smalltalk "
'Hello mate' indexOfSubCollection:'ate' "returns 8"
'Hello mate' indexOfSubCollection:'late' "returns 0"
I'Hello mate'
indexOfSubCollection:'late'
ifAbsent:[ 99 ] "returns 99"
'Hello mate'
indexOfSubCollection:'late'
ifAbsent:[ self error ] "raises an exception"
Charakter finden[edit]
Definition | find_character(string,char) gibt ganze Zahl zurück
|
---|---|
Beschreibung | Gibt die Position des Anfangs des ersten Vorkommens des Zeichens zurück verkohlen in Schnur. Wenn das Zeichen nicht gefunden wird, geben die meisten dieser Routinen einen ungültigen Indexwert zurück – -1, wenn Indizes 0-basiert sind, 0, wenn sie 1-basiert sind – oder einen Wert, der als Boolean FALSE interpretiert wird. Dies kann als Sonderfall von #Find mit einer Zeichenfolge von einem Zeichen erreicht werden; in vielen Sprachen kann es jedoch einfacher oder effizienter sein, nur ein Zeichen zu finden. Außerdem sind in vielen Sprachen Zeichen und Zeichenfolgen unterschiedlich, daher ist es praktisch, eine solche Funktion zu haben. |
Verwandt | finden |
Format | Sprachen | Wenn nicht gefunden |
---|---|---|
char in string(char, pos, string[startpos:])
|
ALGOL 68 | liefert BOOL: TRUE oder FALSE und Position in REF INT pos. |
instr(string, any char«,startpos») (char, kann mehrere davon enthalten ein char, in diesem Fall wird die Position des ersten Auftretens eines von ihnen zurückgegeben.)
|
FreeBASIC | gibt 0 zurück |
strchr(string,char)
|
C, C++ (char * nur, gibt Zeiger auf Zeichen zurück)
|
gibt NULL zurück |
std.string.find(string, dchar)
|
D | gibt −1 . zurück |
string.find(char«,startpos»)
|
C++ (STL) | gibt std::string::npos zurück |
pos(string, char«, startpos»)
|
Samen7 | gibt 0 zurück |
strings.IndexRune(string,char)
|
gehen | gibt −1 . zurück |
string.indexOf(char«,startpos»)
|
Java, JavaScript | gibt −1 . zurück |
string.IndexOf(char«,startpos«, charcount»»)
|
VB.NET, C#, Windows PowerShell, F# | gibt −1 . zurück |
(position char string)
|
Gemeinsame Lisp | gibt NIL zurück |
(char-index char string)
|
ISLISP | kehrt zurück nil
|
List.elemIndex char string
|
Haskell (kehrt zurück) Just index )
|
kehrt zurück Nothing
|
String.index string char
|
OCaml | wirft Not_found . auf |
position = SCAN (string, set «, back» «, kind») or
|
Fortran | gibt null zurück |
string indexOf: char ifAbsent: aBlock
|
Smalltalk | bewerten aBlock die ein BlockClosure (oder irgendein Objektverständniswert) gibt 0 zurück kehrt zurück true oder false
|
index(string, char, startpos )
|
PL/I[18] | gibt 0 zurück (Positionen beginnen bei 1) |
string.index(?char)
|
Rubin | gibt null zurück |
strpos(string,char,startpos)
|
PHP | kehrt zurück false
|
string.indexOf(char«,startpos«, charcount»»)
|
Kobra | gibt −1 . zurück |
string⍳char
|
APL | gibt 1 + die letzte Position in zurück Schnur |
string.find(substring)
|
Rost[17] | kehrt zurück None
|
// Examples in C#
"Hello mate".IndexOf('e'); // returns 1
"word".IndexOf('z') // returns -1
; Examples in Common Lisp
(position #e "Hello mate") ; returns 1
(position #z "word") ; returns NIL
^a Bei gegebenem Zeichensatz gibt SCAN die Position des ersten gefundenen Zeichens zurück,[19] während VERIFY die Position des ersten Zeichens zurückgibt, das nicht zur Menge gehört.[20]
Format[edit]
Definition | format(formatstring, items) gibt Zeichenfolge zurück
|
---|---|
Beschreibung | Gibt die formatierte Zeichenfolgendarstellung eines oder mehrerer Elemente zurück. |
Format | Sprachen | String-Syntax formatieren | |
---|---|---|---|
associate(file, string); putf(file, $formatstring$, items)
|
ALGOL 68 | ALGOL | |
Format(item, formatstring)
|
VB |
|
|
sprintf(formatstring, items)
|
Perl, PHP, Raku, Ruby | C | |
item.fmt(formatstring)
|
Raku | C | |
io_lib:format(formatstring, items)
|
Erlang |
|
|
sprintf(outputstring, formatstring, items)
|
C | C | |
std::format(formatstring, items)
|
C++ (C++20) | Python | |
std.string.format(formatstring, items)
|
D | C | |
Format(formatstring, items)
|
Objektpascal (Delphi) |
|
|
fmt.Sprintf(formatstring, items)
|
gehen | C | |
printf -v outputstring formatstring items
|
Bash-Shell | C | |
formatstring % (items)
|
Python, Ruby | C | |
formatstring.format(items)
|
Python | .NETZ | |
fformatstring
|
Python 3 | ||
Printf.sprintf formatstring [21] items
|
OCaml, F# | C | |
Text.Printf.printf formatstring items
|
Haskell (GHC) | C | |
formatstring printf: items
|
Smalltalk | C | |
String.format(formatstring, items)
|
Java | C | |
String.Format(formatstring, items)
|
VB.NET, C#, F# | .NETZ | |
(format formatstring items)
|
Schema (SRFI 28) | Lispeln | |
(format nil formatstring items)
|
Gemeinsame Lisp | Lispeln | |
(format formatstring items)
|
Clojure | Lispeln | |
formatstring -f items
|
Windows PowerShell | .NETZ | |
[NSString stringWithFormat:formatstring, items]
|
Ziel c (NSString * nur)
|
C | |
String(format:formatstring, items)
|
Swift (Stiftung) | C | |
string.format(formatstring, items)
|
Lua | C | |
WRITE (outputstring, formatstring) items
|
Fortran | Fortran | |
put string(string) edit(items)(format)
|
PL/I | PL/I (ähnlich Fortran) | |
String.format(formatstring, items)
|
Kobra | .NETZ | |
format formatstring items
|
Tcl | C | |
formatnumbers ⍕ items oder formatstring ⎕FMT items
|
APL | APL | |
format!(formatstring, items)
|
Rost[22] | Python |
// Example in C#
String.Format("My {0} costs {1:C2}", "pen", 19.99); // returns "My pen costs $19.99"
// Example in Object Pascal (Delphi)
Format('My %s costs $%2f', ['pen', 19.99]); // returns "My pen costs $19.99"
// Example in Java
String.format("My %s costs $%2f", "pen", 19.99); // returns "My pen costs $19.99"
# Examples in Raku
sprintf "My %s costs $%.2f", "pen", 19.99; # returns "My pen costs $19.99"
1.fmt("%04d"); # returns "0001"
# Example in Python
"My %s costs $%.2f" % ("pen", 19.99); # returns "My pen costs $19.99"
"My {0} costs ${1:.2f}".format("pen", 19.99); # returns "My pen costs $19.99"
#Example in Python 3.6+
pen = "pen"
f"My {pen} costs {19.99}" #returns "My pen costs 19.99"
; Example in Scheme
(format "My ~a costs $~1,2F" "pen" 19.99) ; returns "My pen costs $19.99"
/* example in PL/I */ put string(some_string) edit('My ', 'pen', ' costs', 19.99)(a,a,a,p'$$$V.99') /* returns "My pen costs $19.99" */
Ungleichheit[edit]
Testet, ob zwei Zeichenfolgen ungleich sind. Siehe auch #Gleichstellung.
Format | Sprachen |
---|---|
string1 ne string2, or string1 NE string2
|
ALGOL 68 – Hinweis: der Betreiber "ne"ist buchstäblich in Fett gedruckt Typ-Schriftart. |
string1 /= string2
|
ALGOL 68, Ada, Erlang, Fortran, Haskell |
string1 <> string2
|
BASIC, VB, VB .NET, Pascal, Object Pascal (Delphi), OCaml, PHP, Seed7, Standard ML, F#, COBOL, Cobra, Python 2 (veraltet) |
string1 # string2
|
BASIC (einige Implementierungen) |
string1 ne string2
|
Perl, Raku |
(string<> string1 string2)
|
Schema (SRFI 13) |
(string/= string1 string2)
|
Gemeinsame Lisp |
(string/= string1 string2)
|
ISLISP |
(not= string1 string2)
|
Clojure |
string1 != string2
|
C++ (STL), C#, Go, JavaScript (nicht ähnlich), PHP (nicht ähnlich), Python, Ruby, Rust,[10]Swift, D, Mathematica |
string1 !== string2
|
JavaScript, PHP |
string1 = string2
|
Rexx |
string1 ¬= string2
|
PL/I |
test string1 != string2, or
|
Bourne-Muschel |
string1 -ne string2, or
|
Windows PowerShell |
string1 ~= string2
|
Lua, Smalltalk |
string1 ≢ string2
|
APL |
string1.ne(string2)
|
Rost[10] |
// Example in C#
"hello" != "world" // returns true
' Example in Visual Basic
"hello" <> "world" ' returns true
;; Example in Clojure
(not= "hello" "world") ; ⇒ true
# Example in Perl 5
'hello' ne 'world' # returns 1
# Example in Raku
'hello' ne 'world' # returns True
# Example in Windows PowerShell
"hello" -ne "world" # returns true
Index[edit]
sehen #Finden
Index von[edit]
sehen #Finden
anweisung[edit]
sehen #Finden
instrrev[edit]
sehen #rfind
beitreten[edit]
Definition | join(separator, list_of_strings) gibt eine Liste von Strings zurück, die mit einem Trennzeichen verbunden sind
|
---|---|
Beschreibung | Verbindet die Liste der Zeichenfolgen zu einer neuen Zeichenfolge, wobei die Trennzeichenfolge zwischen den einzelnen Teilzeichenfolgen liegt. Gegenteil von Teilt. |
Verwandt | sprintf |
Format | Sprachen |
---|---|
std.string.join(array_of_strings, separator)
|
D |
string:join(list_of_strings, separator)
|
Erlang |
join(separator, list_of_strings)
|
Perl, PHP, Raku |
implode(separator, array_of_strings)
|
PHP |
separator.join(sequence_of_strings)
|
Python, Swift 1.x |
array_of_strings.join(separator)
|
Rubin, JavaScript, Raku, Rust[23] |
(string-join array_of_strings separator)
|
Schema (SRFI 13) |
(format nil "~{~a~^separator~}" array_of_strings)
|
Gemeinsame Lisp |
(clojure.string/join separator list_of_strings)
|
Clojure |
strings.Join(array_of_strings, separator)
|
gehen |
join(array_of_strings, separator)
|
Samen7 |
String.concat separator list_of_strings
|
OCaml |
String.concatWith separator list_of_strings
|
Standard-ML |
Data.List.intercalate separator list_of_strings
|
Haskell (GHC 6.8+) |
Join(array_of_strings, separator)
|
VB |
String.Join(separator, array_of_strings)
|
VB.NET, C#, F# |
String.join(separator, array_of_strings)
|
Java 8+ |
&{$OFS=$separator; "$array_of_strings"}, or
|
Windows PowerShell |
[array_of_strings componentsJoinedByString:separator]
|
Ziel c (NSString * nur)
|
table.concat(table_of_strings, separator)
|
Lua |
{|String streamContents: [ :stream | collectionOfAnything asStringOn: stream delimiter: separator ]
|
Smalltalk (Quietsch, Pharo) |
array_of_strings.join(separator«, final_separator»)
|
Kobra |
sequence_of_strings.joinWithSeparator(separator)
|
Schnell 2.x |
1↓∊separator,¨list_of_strings
|
APL |
// Example in C#
String.Join("-", {"a", "b", "c"}) // "a-b-c"
" Example in Smalltalk "
#('a' 'b' 'c') joinUsing: '-' " 'a-b-c' "
# Example in Perl 5
join( '-', ('a', 'b', 'c')); # 'a-b-c'
# Example in Raku
.join('-'); # 'a-b-c'
# Example in Python
"-".join(["a", "b", "c"]) # 'a-b-c'
# Example in Ruby
["a", "b", "c"].join("-") # 'a-b-c'
; Example in Scheme
(use-modules (srfi srfi-13))
(string-join '("a" "b" "c") "-") ; "a-b-c"
letzterindexvon[edit]
sehen #rfind
links[edit]
Definition | left(string,n) gibt Zeichenfolge zurück
|
---|---|
Beschreibung | Gibt die linke zurück n Teil einer Schnur. Wenn n größer als die Länge des Strings ist, geben die meisten Implementierungen den gesamten String zurück (Ausnahmen existieren – siehe Codebeispiele). Beachten Sie, dass es bei Codierungen mit variabler Länge wie UTF-8, UTF-16 oder Shift-JIS erforderlich sein kann, Zeichenfolgenpositionen am Ende zu entfernen, um ungültige Zeichenfolgen zu vermeiden. |
Format | Sprachen |
---|---|
string (string'First .. string'First + n - 1)
|
Ada |
substr(string, 0, n)
|
AWK (ändert String), Perl, PHP, Raku |
LEFT$(string,n)
|
BASIC, VB |
left(string,n)
|
VB, FreeBASIC, Ingres, Pick Basic |
strncpy(string2, string, n)
|
C-Standardbibliothek |
string.substr(0,n)
|
C++ (STL), Raku |
[string substringToIndex:n]
|
Ziel c (NSString * nur)
|
(apply str (take n string))
|
Clojure |
string[0 .. n]
|
D[24] |
string:substr(string, start, length)
|
Erlang |
(subseq string 0 n)
|
Gemeinsame Lisp |
string[:n]
|
Cobra, Go, Python |
left(string,n «,padchar»)
|
Rexx, Erlang |
string[0, n]
|
Rubin |
string[1, n]
|
Wählen Sie Basic |
string[ .. n]
|
Samen7 |
string.Substring(0,n)
|
VB.NET, C#, Windows PowerShell, F# |
leftstr(string, n)
|
Pascal, Objektpascal (Delphi) |
copy (string,1,n)
|
Turbo-Pascal |
string.substring(0,n)
|
Java,[25]JavaScript |
(string-take string n)
|
Schema (SRFI 13) |
take n string
|
Haskell |
String.extract (string, n, NONE)
|
Standard-ML |
String.sub string 0 n
|
OCaml[26] |
string.[..n]
|
F# |
string.sub(string, 1, n)
|
Lua |
string first: n
|
Smalltalk (Quietsch, Pharo) |
string(:n)
|
Fortran |
StringTake[string, n]
|
Mathematik[27] |
string («FUNCTION» LENGTH(string) - n:n)
|
COBOL |
string.substring(0, n)
|
Kobra |
n↑string.
|
APL |
string[0..n] string[..n] string.get(0..n) string.get(..n)
|
Rost[28] |
# Example in Raku
"Hello, there!".substr(0, 6); # returns "Hello,"
/* Examples in Rexx */
left("abcde", 3) /* returns "abc" */
left("abcde", 8) /* returns "abcde " */
left("abcde", 8, "*") /* returns "abcde***" */
; Examples in Scheme
(use-modules (srfi srfi-13))
(string-take "abcde", 3) ; returns "abc"
(string-take "abcde", 8) ; error
' Examples in Visual Basic
Left("sandroguidi", 3) ' returns "san"
Left("sandroguidi", 100) ' returns "sandroguidi"
len[edit]
sehen #Länge
Länge[edit]
Definition | length(string) gibt eine ganze Zahl zurück
|
---|---|
Beschreibung | Gibt die Länge eines Strings zurück (ohne den Nullabschluss oder andere interne Strukturinformationen des Strings zu zählen). Ein leerer String gibt eine Länge von 0 zurück. |
Format | Kehrt zurück | Sprachen |
---|---|---|
string'Length
|
|
Ada |
UPB string
|
|
ALGOL 68 |
length(string)
|
|
Ingres, Perl 5, Pascal, Object Pascal (Delphi), Rexx, Seed7, SQL, PL/I |
len(string)
|
|
BASIC, FreeBASIC, Python, Go, Pick Basic |
length(string), string:len(string)
|
|
Erlang |
Len(string)
|
|
VB, Pick Basic |
string.Length
|
Anzahl der UTF-16-Codeeinheiten | VB.NET, C#, Windows PowerShell, F# |
chars(string) string.chars
|
Anzahl Grapheme (NFG) | Raku |
codes(string) string.codes
|
Anzahl Unicode-Codepunkte | Raku |
string.size OR string.length
|
Anzahl Bytes[29] | Rubin |
strlen(string)
|
Anzahl Bytes | C, PHP |
string.length()
|
|
C++ (STL) |
string.length
|
|
Cobra, D, JavaScript |
string.length()
|
Anzahl der UTF-16-Codeeinheiten | Java |
(string-length string)
|
|
Scheme |
(length string)
|
|
Common Lisp, ISLISP |
(count string)
|
|
Clojure |
String.length string
|
|
OCaml |
size string
|
|
Standard ML |
length string
|
Anzahl Unicode-Codepunkte | Haskell |
string.length
|
Anzahl der UTF-16-Codeeinheiten | Ziel c (NSString * nur)
|
string.characters.count
|
Anzahl von Charakteren | Schnell (2.x) |
count(string)
|
Anzahl von Charakteren | Schnell (1.2) |
countElements(string)
|
Anzahl von Charakteren | Schnell (1.0–1.1) |
string.len(string)
|
|
Lua |
string size
|
|
Smalltalk |
LEN(string), or LEN_TRIM(string)
|
|
Fortran |
StringLength[string]
|
|
Mathematica |
«FUNCTION» LENGTH(string) oder
|
Anzahl Zeichen bzw. Anzahl Bytes | COBOL |
string length string
|
eine Dezimalzeichenfolge, die die Anzahl der Zeichen angibt | Tcl |
≢ string
|
APL | |
string.len()
|
Anzahl Bytes | Rost[30] |
string.chars().count()
|
Anzahl Unicode-Codepunkte | Rost[31] |
// Examples in C#
"hello".Length; // returns 5
"".Length; // returns 0
# Examples in Erlang
string:len("hello"). % returns 5
string:len(""). % returns 0
# Examples in Perl 5
length("hello"); # returns 5
length(""); # returns 0
# Examples in Raku
"🏳️🌈".chars; chars "🏳️🌈"; # both return 1
"🏳️🌈".codes; codes "🏳️🌈"; # both return 4
"".chars; chars ""; # both return 0
"".codes; codes ""; # both return 0
' Examples in Visual Basic
Len("hello") ' returns 5
Len("") ' returns 0
//Examples in Objective-C
[@"hello" Length] //returns 5
[@"" Length] //returns 0
-- Examples in Lua
("hello"):len() -- returns 5
#"" -- returns 0
Lokalisieren[edit]
sehen #Finden
Kleinbuchstaben[edit]
Definition | lowercase(string) gibt Zeichenfolge zurück
|
---|---|
Beschreibung | Gibt die Zeichenfolge in Kleinbuchstaben zurück. |
Format | Sprachen |
---|---|
LCase(string)
|
VB |
lcase(string)
|
FreeBASIC |
lc(string)
|
Perl, Raku |
string.lc
|
Raku |
tolower(char)
|
C[32] |
std.string.toLower(string)
|
D |
transform(string.begin(), string.end(), result.begin(), ::tolower) [33] |
C++[34] |
lowercase(string)
|
Objektpascal (Delphi) |
strtolower(string)
|
PHP |
lower(string)
|
Samen7 |
echo "string" | tr 'A-Z' 'a-z'
|
Unix |
string.lower()
|
Python |
downcase(string)
|
Wählen Sie Basic |
string.downcase
|
Rubin[35] |
strings.ToLower(string)
|
gehen |
(string-downcase string)
|
Schema (R6RS), Common Lisp |
(lower-case string)
|
Clojure |
String.lowercase string
|
OCaml |
String.map Char.toLower string
|
Standard-ML |
map Char.toLower string
|
Haskell |
string.toLowerCase()
|
Java, JavaScript |
to_lower(string)
|
Erlang |
string.ToLower()
|
VB.NET, C#, Windows PowerShell, F# |
string.lowercaseString
|
Ziel c (NSString * nur), Swift (Stiftung)
|
string.lower(string)
|
Lua |
string asLowercase
|
Smalltalk |
LOWER(string)
|
SQL |
lowercase(string)
|
PL/I[8] |
ToLowerCase[string]
|
Mathematik |
«FUNCTION» LOWER-CASE(string)
|
COBOL |
string.toLower
|
Kobra |
string tolower string
|
Tcl |
string.to_lowercase()
|
Rost[36] |
// Example in C#
"Wiki means fast?".ToLower(); // "wiki means fast?"
; Example in Scheme
(use-modules (srfi srfi-13))
(string-downcase "Wiki means fast?") ; "wiki means fast?"
/* Example in C */
#include
#include
int main(void) {
char string[] = "Wiki means fast?";
int i;
for (i = 0; i < sizeof(string) - 1; ++i) {
/* transform characters in place, one by one */
string[i] = tolower(string[i]);
}
puts(string); /* "wiki means fast?" */
return 0;
}
# Example in Raku
"Wiki means fast?".lc; # "wiki means fast?"
Mitte[edit]
sehen #Teilzeichenfolge
Partition[edit]
Definition | |
---|---|
Beschreibung | Teilt die angegebene Zeichenfolge durch das Trennzeichen und gibt die drei Teilzeichenfolgen zurück, die zusammen das Original ergeben. |
Format | Sprachen | Kommentare |
---|---|---|
string.partition(separator)
|
Python, Rubin (1.9+) | |
lists:partition(pred, string)
|
Erlang | |
split /(separator)/, string, 2
|
Perl 5 | |
split separator, string, 2 string.split( separator, 2 )
|
Raku | Trennzeichen muss kein regulärer Ausdruck sein |
# Examples in Python
"Spam eggs spam spam and ham".partition('spam') # ('Spam eggs ', 'spam', ' spam and ham')
"Spam eggs spam spam and ham".partition('X') # ('Spam eggs spam spam and ham', "", "")
# Examples in Perl 5 / Raku
split /(spam)/, 'Spam eggs spam spam and ham' ,2; # ('Spam eggs ', 'spam', ' spam and ham');
split /(X)/, 'Spam eggs spam spam and ham' ,2; # ('Spam eggs spam spam and ham');
ersetzen[edit]
Definition | replace(string, find, replace) gibt Zeichenfolge zurück
|
---|---|
Beschreibung | Gibt eine Zeichenfolge mit zurück finden Vorkommen geändert zu ersetzen. |
Format | Sprachen |
---|---|
changestr(find, string, replace)
|
Rexx |
std.string.replace(string, find, replace)
|
D |
Replace(string, find, replace)
|
VB |
replace(string, find, replace)
|
Samen7 |
change(string, find, replace)
|
Wählen Sie Basic |
string.Replace(find, replace)
|
C#, F#, VB.NET |
str_replace(find, replace, string)
|
PHP |
re:replace(string, find, replace, «{return, list}»)
|
Erlang |
string.replace(find, replace)
|
Cobra, Java (1.5+), Python, Rust[37] |
string.replaceAll(find_regex, replace)[38]
|
Java |
string.gsub(find, replace)
|
Rubin |
string =~ s/find_regex/replace/g[38]
|
Perl 5 |
string.subst(find, replace, :g)
|
Raku |
string.replace(find, replace, "g") [39] or
|
JavaScript |
echo "string" | sed 's/find_regex/replace/g'[38]
|
Unix |
string.replace(find, replace), or
|
Windows PowerShell |
Str.global_replace (Str.regexp_string find) replace string
|
OCaml |
[string stringByReplacingOccurrencesOfString:find withString:replace]
|
Ziel c (NSString * nur)
|
string.stringByReplacingOccurrencesOfString(find, withString:replace)
|
Swift (Stiftung) |
string.gsub(string, find, replace)
|
Lua |
string copyReplaceAll: find with: replace
|
Smalltalk (Quietschen, Pharo) |
string map {find replace} string
|
Tcl |
StringReplace[string, find -> replace]
|
Mathematik |
strings.Replace(string, find, replace, -1)
|
gehen |
INSPECT string REPLACING ALL/LEADING/FIRST find BY replace
|
COBOL |
find_regex ⎕R replace_regex ⊢ string
|
APL |
// Examples in C#
"effffff".Replace("f", "jump"); // returns "ejumpjumpjumpjumpjumpjump"
"blah".Replace("z", "y"); // returns "blah"
// Examples in Java
"effffff".replace("f", "jump"); // returns "ejumpjumpjumpjumpjumpjump"
"effffff".replaceAll("f*", "jump"); // returns "ejump"
// Examples in Raku
"effffff".subst("f", "jump", :g); # returns "ejumpjumpjumpjumpjumpjump"
"blah".subst("z", "y", :g); # returns "blah"
' Examples in Visual Basic
Replace("effffff", "f", "jump") ' returns "ejumpjumpjumpjumpjumpjump"
Replace("blah", "z", "y") ' returns "blah"
# Examples in Windows PowerShell
"effffff" -replace "f", "jump" # returns "ejumpjumpjumpjumpjumpjump"
"effffff" -replace "f*", "jump" # returns "ejump"
umkehren[edit]
Definition | reverse(string)
|
---|---|
Beschreibung | Kehrt die Reihenfolge der Zeichen in der Zeichenfolge um. |
Format | Sprachen |
---|---|
reverse string
|
Perl 5, Haskell |
flip string string.flip
|
Raku |
lists:reverse(string)
|
Erlang |
strrev(string)
|
PHP |
string[::-1]
|
Python |
(string-reverse string)
|
Schema (SRFI 13) |
(reverse string)
|
Gemeinsame Lisp |
string.reverse
|
Ruby, D (ändert die Zeichenfolge) |
new StringBuilder(string).reverse().toString()
|
Java |
std::reverse(string.begin(), string.end());
|
C++ (std::string nur, ändert Zeichenfolge)
|
StrReverse(string)
|
VB |
string.Reverse().ToString()
|
VB.NET, C# |
implode (rev (explode string))
|
Standard-ML |
string.split("").reverse().join("")
|
JavaScript |
string.reverse(string)
|
Lua |
string reverse
|
Smalltalk |
StringReverse[string]
|
Mathematik |
reverse(string)
|
PL/I |
«FUNCTION» REVERSE(string)
|
COBOL |
string.toCharArray.toList.reversed.join()
|
Kobra |
String(string.characters.reverse())
|
Schnell (2.x) |
String(reverse(string))
|
Schnell (1.2) |
string reverse string
|
Tcl |
⌽string
|
APL |
string.chars().rev().collect::
|
Rost[40] |
" Example in Smalltalk "
'hello' reversed " returns 'olleh' "
# Example in Perl 5
reverse "hello" # returns "olleh"
# Example in Raku
"hello".flip # returns "olleh"
# Example in Python
"hello"[::-1] # returns "olleh"
; Example in Scheme
(use-modules (srfi srfi-13))
(string-reverse "hello") ; returns "olleh"
rfind[edit]
Definition | rfind(string,substring) gibt ganze Zahl zurück
|
---|---|
Beschreibung | Gibt die Position des Anfangs des letzten Vorkommens von zurück Teilzeichenfolge in Schnur. Wenn die Teilzeichenfolge nicht gefunden wird, geben die meisten dieser Routinen einen ungültigen Indexwert zurück – -1, wenn Indizes 0-basiert sind, 0, wenn sie 1-basiert sind – oder einen Wert, der als Boolean FALSE interpretiert wird. |
Verwandt | anweisung |
Format | Sprachen | Wenn nicht gefunden |
---|---|---|
InStrRev(«startpos,» string,substring)
|
VB | gibt 0 zurück |
instrrev(«startpos,» string,substring)
|
FreeBASIC | gibt 0 zurück |
rindex(string,substring«,startpos»)
|
Perl 5 | gibt −1 . zurück |
rindex(string,substring«,startpos») string.rindex(substring«,startpos»)
|
Raku | gibt Nil zurück |
strrpos(string,substring«,startpos»)
|
PHP | gibt FALSE zurück |
string.rfind(substring«,startpos»)
|
C++ (STL) | gibt std::string::npos zurück |
std.string.rfind(string, substring)
|
D | gibt −1 . zurück |
string.rfind(substring«,startpos«, endpos»»)
|
Python | gibt −1 . zurück |
string.rindex(substring«,startpos«, endpos»»)
|
erhöht ValueError | |
rpos(string, substring«,startpos»)
|
Samen7 | gibt 0 zurück |
string.rindex(substring«,startpos»)
|
Rubin | gibt null zurück |
strings.LastIndex(string, substring)
|
gehen | gibt −1 . zurück |
string.lastIndexOf(substring«,startpos»)
|
Java, JavaScript | gibt −1 . zurück |
string.LastIndexOf(substring«,startpos«, charcount»»)
|
VB.NET, C#, Windows PowerShell, F# | gibt −1 . zurück |
(search substring string :from-end t)
|
Gemeinsame Lisp | gibt NIL zurück |
[string rangeOfString:substring options:NSBackwardsSearch].location
|
Ziel c (NSString * nur)
|
gibt NSNotFound zurück |
Str.search_backward (Str.regexp_string substring) string (Str.length string - 1)
|
OCaml | wirft Not_found . auf |
string.match(string, '.*()'..substring)
|
Lua | gibt null zurück |
Ada.Strings.Unbounded.Index(Source => string, Pattern => substring,
|
Ada | gibt 0 zurück |
string.lastIndexOf(substring«,startpos«, charcount»»)
|
Kobra | gibt −1 . zurück |
string lastIndexOfString:substring
|
Smalltalk | gibt 0 zurück |
string last substring string startpos
|
Tcl | gibt −1 . zurück |
(⌽<⌽substring⍷'string')⍳1
|
APL | gibt −1 . zurück |
string.rfind(substring)
|
Rost[41] | kehrt zurück None
|
; Examples in Common Lisp
(search "e" "Hello mate" :from-end t) ; returns 9
(search "z" "word" :from-end t) ; returns NIL
// Examples in C#
"Hello mate".LastIndexOf("e"); // returns 9
"Hello mate".LastIndexOf("e", 4); // returns 1
"word".LastIndexOf("z"); // returns -1
# Examples in Perl 5
rindex("Hello mate", "e"); # returns 9
rindex("Hello mate", "e", 4); # returns 1
rindex("word", "z"); # returns -1
# Examples in Raku
"Hello mate".rindex("e"); # returns 9
"Hello mate".rindex("e", 4); # returns 1
"word".rindex('z'); # returns Nil
' Examples in Visual Basic
InStrRev("Hello mate", "e") ' returns 10
InStrRev(5, "Hello mate", "e") ' returns 2
InStrRev("word", "z") ' returns 0
rechts[edit]
Definition | right(string,n) gibt Zeichenfolge zurück
|
---|---|
Beschreibung | Gibt das Recht zurück n Teil einer Schnur. Wenn n größer als die Länge des Strings ist, geben die meisten Implementierungen den gesamten String zurück (Ausnahmen existieren – siehe Codebeispiele). |
Format | Sprachen |
---|---|
string (string'Last - n + 1 .. string'Last)
|
Ada |
Right(string,n)
|
VB |
RIGHT$(string,n)
|
BASIC |
right(string,n)
|
FreeBASIC, Ingres, Pick Basic |
strcpy(string2, string+n) (n darf nicht größer sein als die Länge von Schnur)
|
C |
string.Substring(string.Length()-n)
|
C# |
string[len(string)-n:]
|
gehen |
string.substring(string.length()-n)
|
Java |
string.slice(-n)
|
JavaScript[42] |
right(string,n «,padchar»)
|
Rexx, Erlang |
substr(string,-n)
|
Perl 5, PHP |
substr(string,*-n) string.substr(*-n)
|
Raku |
string[-n:]
|
Kobra, Python |
string[n]
|
Wählen Sie Basic |
(string-take-right string n)
|
Schema (SRFI 13) |
string[-n..-1]
|
Rubin |
string[$-n .. $]
|
D[43] |
String.sub string (String.length string - n) n
|
OCaml[26] |
string.sub(string, -n)
|
Lua |
string last: n
|
Smalltalk (Quietsch, Pharo) |
StringTake[string, -n]
|
Mathematik[27] |
string (1:n)
|
COBOL |
¯n↑string.
|
APL |
string[n..] string.get(n..)
|
Rost[28] |
// Examples in Java; extract rightmost 4 characters
String str = "CarDoor";
str.substring(str.length()-4); // returns 'Door'
# Examples in Raku
"abcde".substr(*-3); # returns "cde"
"abcde".substr(*-8); # 'out of range' error
/* Examples in Rexx */
right("abcde", 3) /* returns "cde" */
right("abcde", 8) /* returns " abcde" */
right("abcde", 8, "*") /* returns "***abcde" */
; Examples in Scheme
(use-modules (srfi srfi-13))
(string-take-right "abcde", 3) ; returns "cde"
(string-take-right "abcde", 8) ; error
' Examples in Visual Basic
Right("sandroguidi", 3) ' returns "idi"
Right("sandroguidi", 100) ' returns "sandroguidi"
rpartition[edit]
Definition | |
---|---|
Beschreibung | Teilt die angegebene Zeichenfolge durch das am weitesten rechts stehende Trennzeichen und gibt die drei Teilzeichenfolgen zurück, die zusammen das Original ergeben. |
Format | Sprachen |
---|---|
string.rpartition(separator)
|
Python, Ruby |
# Examples in Python
"Spam eggs spam spam and ham".rpartition('spam') ### ('Spam eggs spam ', 'spam', ' and ham')
"Spam eggs spam spam and ham".rpartition('X') ### ("", "", 'Spam eggs spam spam and ham')
Scheibe[edit]
sehen #Teilzeichenfolge
Teilt[edit]
Definition | |
---|---|
Beschreibung | Teilt die angegebene Zeichenfolge nach Vorkommen des Trennzeichens (selbst eine Zeichenfolge) und gibt eine Liste (oder ein Array) der Teilzeichenfolgen zurück. Wenn Grenze ist gegeben, nach Grenze – 1 Trennzeichen gelesen wurden, wird der Rest des Strings zum letzten Teilstring gemacht, unabhängig davon, ob er Trennzeichen enthält. Die Scheme- und Erlang-Implementierungen sind ähnlich, unterscheiden sich jedoch in mehrfacher Hinsicht. JavaScript unterscheidet sich auch darin, dass es schneidet, den Rest des Strings nicht in das letzte Element einfügt. Siehe das Beispiel hier. Die Cobra-Implementierung verwendet standardmäßig Whitespace. Gegenteil von beitreten. |
Format | Sprachen |
---|---|
split(/separator/, string«, limit»)
|
Perl 5 |
split(separator, string«, limit») string.split(separator, «limit»)
|
Raku |
explode(separator, string«, limit»)
|
PHP |
string.split(separator«, limit-1»)
|
Python |
string.split(separator«, limit»)
|
JavaScript, Java, Ruby |
string:tokens(string, sepchars)
|
Erlang |
strings.Split(string, separator)
|
gehen |
(string-tokenize string« charset« start« end»»»)
|
Schema (SRFI 13) |
Split(string, sepchars«, limit»)
|
VB |
string.Split(sepchars«, limit«, options»»)
|
VB.NET, C#, F# |
string -split separator«, limit«, options»»
|
Windows PowerShell |
Str.split (Str.regexp_string separator) string
|
OCaml |
std.string.split(string, separator)
|
D |
[string componentsSeparatedByString:separator]
|
Ziel c (NSString * nur)
|
string.componentsSeparatedByString(separator)
|
Swift (Stiftung) |
TStringList.Delimiter, TStringList.DelimitedText
|
Objekt Pascal |
StringSplit[string, separator«, limit»]
|
Mathematik |
string.split«(sepchars«, limit«, options»»)»
|
Kobra |
split string separator
|
Tcl |
(separator≠string)⊂string oder separator(≠⊆⊢)string in APL2 bzw. Dyalog APL 16.0
|
APL |
string.split(separator)
|
Rost[44] |
// Example in C#
"abc,defgh,ijk".Split(','); // {"abc", "defgh", "ijk"}
"abc,defgh;ijk".Split(',', ';'); // {"abc", "defgh", "ijk"}
% Example in Erlang
string:tokens("abc;defgh;ijk", ";"). % ["abc", "defgh", "ijk"]
// Examples in Java
"abc,defgh,ijk".split(","); // {"abc", "defgh", "ijk"}
"abc,defgh;ijk".split(",|;"); // {"abc", "defgh", "ijk"}
{ Example in Pascal }
var
lStrings: TStringList;
lStr: string;
begin
lStrings := TStringList.Create;
lStrings.Delimiter := ',';
lStrings.DelimitedText := 'abc,defgh,ijk';
lStr := lStrings.Strings[0]; // 'abc'
lStr := lStrings.Strings[1]; // 'defgh'
lStr := lStrings.Strings[2]; // 'ijk'
end;
# Examples in Perl 5
split(/spam/, 'Spam eggs spam spam and ham'); # ('Spam eggs ', ' ', ' and ham')
split(/X/, 'Spam eggs spam spam and ham'); # ('Spam eggs spam spam and ham')
# Examples in Raku
'Spam eggs spam spam and ham'.split(/spam/); # (Spam eggs and ham)
split(/X/, 'Spam eggs spam spam and ham'); # (Spam eggs spam spam and ham)
sprintf[edit]
sehen #Format
Streifen[edit]
sehen #trimmen
strcmp[edit]
sehen #Vergleichen (Ganzzahlergebnis)
Teilzeichenfolge[edit]
Definition | substring(string, startpos, endpos) gibt Zeichenfolge zurück substr(string, startpos, numChars) gibt Zeichenfolge zurück
|
---|---|
Beschreibung | Gibt eine Teilzeichenfolge von zurück Schnur zwischen ab startpos und Endpos, oder ab startpos der Länge numChars. Die resultierende Zeichenfolge wird abgeschnitten, wenn weniger als numChars Zeichen jenseits des Startpunkts. Endpos stellt den Index nach dem letzten Zeichen in der Teilzeichenfolge dar. Beachten Sie, dass es bei Codierungen mit variabler Länge wie UTF-8, UTF-16 oder Shift-JIS erforderlich sein kann, Zeichenfolgenpositionen am Ende zu entfernen, um ungültige Zeichenfolgen zu vermeiden. |
Format | Sprachen |
---|---|
string[startpos:endpos]
|
ALGOL 68 (ändert den Basisindex) |
string (startpos .. endpos)
|
Ada (ändert den Basisindex) |
Mid(string, startpos, numChars)
|
VB |
mid(string, startpos, numChars)
|
FreeBASIC |
string[startpos+(⍳numChars)-~⎕IO]
|
APL |
MID$(string, startpos, numChars)
|
BASIC |
substr(string, startpos, numChars)
|
AWK (ändert String), Perl 5,[45][46]PHP[45][46] |
substr(string, startpos, numChars) string.substr(startpos, numChars)
|
Raku[47][48] |
substr(string, startpos «,numChars, padChar»)
|
Rexx |
string[startpos:endpos]
|
Kobra, Python,[45][49]gehen |
string[startpos, numChars]
|
Wählen Sie Basic |
string[startpos, numChars]
|
Rubin[45][49] |
string[startpos .. endpos]
|
Samen7 |
string.slice(startpos«, endpos»)
|
JavaScript[45][49] |
string.substr(startpos«, numChars»)
|
C++ (STL), JavaScript |
string.Substring(startpos, numChars)
|
VB.NET, C#, Windows PowerShell, F# |
string.substring(startpos«, endpos»)
|
Java, JavaScript |
copy(string, startpos, numChars)
|
Objektpascal (Delphi) |
(substring string startpos endpos)
|
Planen |
(subseq string startpos endpos)
|
Gemeinsame Lisp |
(subseq string startpos endpos)
|
ISLISP |
String.sub string startpos numChars
|
OCaml |
substring (string, startpos, numChars)
|
Standard-ML |
string:sub_string(string, startpos, endpos)
|
Erlang |
strncpy(result, string + startpos, numChars);
|
C |
string[startpos .. endpos+1]
|
D |
take numChars $ drop startpos string
|
Haskell |
[string substringWithRange:NSMakeRange(startpos, numChars)]
|
Ziel c (NSString * nur)
|
string.[startpos..endpos]
|
F# |
string.sub(string, startpos, endpos)
|
Lua[45][49] |
string copyFrom: startpos to: endpos
|
Smalltalk |
string(startpos:endpos)
|
Fortran |
SUBSTRING(string FROM startpos «FOR numChars»)
|
SQL |
StringTake[string, {startpos, endpos}]
|
Mathematik[45][49] |
string (startpos:numChars)
|
COBOL |
Saitenbereich Zeichenfolge startpos endpos | Tcl |
string[startpos..endpos] string.get(startpos..endpos)
|
Rost[28] |
// Examples in C#
"abc".Substring(1, 1): // returns "b"
"abc".Substring(1, 2); // returns "bc"
"abc".Substring(1, 6); // error
;; Examples in Common Lisp
(subseq "abc" 1 2) ; returns "b"
(subseq "abc" 2) ; returns "c"
% Examples in Erlang
string:substr("abc", 2, 1). % returns "b"
string:substr("abc", 2). % returns "bc"
# Examples in Perl 5
substr("abc", 1, 1); # returns "b"
substr("abc", 1); # returns "bc"
# Examples in Raku
"abc".substr(1, 1); # returns "b"
"abc".substr(1); # returns "bc"
# Examples in Python
"abc"[1:2] # returns "b"
"abc"[1:3] # returns "bc"
/* Examples in Rexx */
substr("abc", 2, 1) /* returns "b" */
substr("abc", 2) /* returns "bc" */
substr("abc", 2, 6) /* returns "bc " */
substr("abc", 2, 6, "*") /* returns "bc****" */
Großbuchstaben[edit]
Definition | uppercase(string) gibt Zeichenfolge zurück
|
---|---|
Beschreibung | Gibt die Zeichenfolge in Großbuchstaben zurück. |
Format | Sprachen |
---|---|
UCase(string)
|
VB |
ucase(string)
|
FreeBASIC |
toupper(string)
|
AWK (ändert die Zeichenfolge) |
uc(string)
|
Perl, Raku |
string.uc
|
Raku |
toupper(char)
|
C (arbeitet an einem Zeichen) |
for(size_t i = 0, len = strlen(string); i< len; i++) string[i] = toupper(string[i]); for (char *c = string; *c != ' '; c++) *c = toupper(*c);
|
C (String/Char-Array) |
std.string.toUpper(string)
|
D |
transform(string.begin(), string.end(), result.begin(), toupper)[33]
|
C++[50] |
uppercase(string)
|
Objektpascal (Delphi) |
upcase(char)
|
Object Pascal (Delphi) (arbeitet auf einem Zeichen) |
strtoupper(string)
|
PHP |
upper(string)
|
Samen7 |
echo "string" | tr 'a-z' 'A-Z'
|
Unix |
translate(string) , oder
|
Rexx |
string.upper()
|
Python |
upcase(string)
|
Wählen Sie Basic |
string.upcase
|
Rubin[35] |
strings.ToUpper(string)
|
gehen |
(string-upcase string)
|
Schema, gemeinsame Lisp |
String.uppercase string
|
OCaml |
String.map Char.toUpper string
|
Standard-ML |
map Char.toUpper string
|
Haskell |
string.toUpperCase()
|
Java, JavaScript |
to_upper(string)
|
Erlang |
string.ToUpper()
|
VB.NET, C#, Windows PowerShell, F# |
string.uppercaseString
|
Ziel c (NSString * nur), Swift (Stiftung)
|
string.upper(string)
|
Lua |
string asUppercase
|
Smalltalk |
UPPER(string)
|
SQL |
ToUpperCase[string]
|
Mathematik |
«FUNCTION» UPPER-CASE(string)
|
COBOL |
string.toUpper
|
Kobra |
string toupper string
|
Tcl |
string.to_uppercase()
|
Rost[51] |
// Example in C#
"Wiki means fast?".ToUpper(); // "WIKI MEANS FAST?"
# Example in Perl 5
uc("Wiki means fast?"); # "WIKI MEANS FAST?"
# Example in Raku
uc("Wiki means fast?"); # "WIKI MEANS FAST?"
"Wiki means fast?".uc; # "WIKI MEANS FAST?"
/* Example in Rexx */
translate("Wiki means fast?") /* "WIKI MEANS FAST?" */
/* Example #2 */
A='This is an example.'
UPPER A /* "THIS IS AN EXAMPLE." */
/* Example #3 */
A='upper using Translate Function.'
Translate UPPER VAR A Z /* Z="UPPER USING TRANSLATE FUNCTION." */
; Example in Scheme
(use-modules (srfi srfi-13))
(string-upcase "Wiki means fast?") ; "WIKI MEANS FAST?"
' Example in Visual Basic
UCase("Wiki means fast?") ' "WIKI MEANS FAST?"
trimmen[edit]
trim
oder strip
wird verwendet, um Leerzeichen am Anfang, am Ende oder am Anfang und am Ende einer Zeichenfolge zu entfernen.
Anwendungsbeispiel | Sprachen |
---|---|
String.Trim([chars])
|
C#, VB.NET, Windows PowerShell |
string.strip();
|
D |
(.trim string)
|
Clojure |
sequence [ predicate? ] trim
|
Faktor |
(string-trim '(#Space #Tab #Newline) string)
|
Gemeinsame Lisp |
(string-trim string)
|
Planen |
string.trim()
|
Java, JavaScript (1.8.1+, Firefox 3.5+), Rust[52] |
Trim(String)
|
Pascal,[53]QBasic, Visual Basic, Delphi |
string.strip()
|
Python |
strings.Trim(string, chars)
|
gehen |
LTRIM(RTRIM(String))
|
Oracle SQL, T-SQL |
strip(string [,option, char])
|
REXX |
string:strip(string [,option, char])
|
Erlang |
string.strip or string.lstrip or string.rstrip
|
Rubin |
string.trim
|
Raku |
trim(string)
|
PHP, Raku |
[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]
|
Ziel-C mit Kakao |
string withBlanksTrimmed
|
Smalltalk (Quietsch, Pharo) Smalltalk |
strip(string)
|
SAS |
string trim $string
|
Tcl |
TRIM(string) or TRIM(ADJUSTL(string))
|
Fortran |
TRIM(string)
|
SQL |
TRIM(string) or LTrim(string) or RTrim(String)
|
ColdFusion |
String.trim string
|
OCaml 4+ |
Andere Sprachen
In Sprachen ohne integrierte Trim-Funktion ist es normalerweise einfach, eine benutzerdefinierte Funktion zu erstellen, die dieselbe Aufgabe erfüllt.
APL[edit]
APL kann reguläre Ausdrücke direkt verwenden:
Alternativ ein funktionaler Ansatz, der Boolesche Masken kombiniert, die führende und nachfolgende Leerzeichen herausfiltern:
Trim←{⍵/⍨(∨∧∘⌽∨∘⌽)' '≠⍵}
Oder kehren Sie um und entfernen Sie führende Leerzeichen zweimal:
Trim←{(∨' '≠⍵)/⍵}∘⌽⍣2
AWK[edit]
In AWK kann man reguläre Ausdrücke zum Trimmen verwenden:
ltrim(v) = gsub(/^[ t]+/, "", v)
rtrim(v) = gsub(/[ t]+$/, "", v)
trim(v) = ltrim(v); rtrim(v)
oder:
function ltrim(s) { sub(/^[ t]+/, "", s); return s }
function rtrim(s) { sub(/[ t]+$/, "", s); return s }
function trim(s) { return rtrim(ltrim(s)); }
C/C++[edit]
In C oder C++ gibt es keine Standardtrimmfunktion. Die meisten der verfügbaren String-Bibliotheken[54] für C enthalten Code, der das Trimmen implementiert, oder Funktionen, die eine effiziente Implementierung erheblich erleichtern. Die Funktion wurde auch schon oft aufgerufen Whitespace essen in einigen nicht standardmäßigen C-Bibliotheken.
In C kombinieren Programmierer oft ltrim und rtrim, um trim zu implementieren:
#include
#include
void rtrim(char *str)
{
char *s;
s = str + strlen(str);
while (--s >= str) {
if (!isspace(*s)) break;
*s = 0;
}
}
void ltrim(char *str)
{
size_t n;
n = 0;
while (str[n] != ' ' && isspace((unsigned char) str[n])) {
n++;
}
memmove(str, str + n, strlen(str) - n + 1);
}
void trim(char *str)
{
rtrim(str);
ltrim(str);
}
Die Open-Source-C++-Bibliothek Boost hat mehrere Trim-Varianten, darunter eine Standardversion:[55]
#include
trimmed = boost::algorithm::trim_copy("string");
Beachten Sie, dass die Funktion von boost einfach benannt ist trim
die Eingabesequenz wird direkt geändert und gibt kein Ergebnis zurück.
Eine andere Open-Source-C++-Bibliothek Qt hat mehrere Trim-Varianten, einschließlich einer Standardversion:[56]
#include
trimmed = s.trimmed();
Der Linux-Kernel enthält auch eine Strip-Funktion, strstrip()
, seit 2.6.18-rc1, wodurch die Zeichenfolge "an Ort und Stelle" gekürzt wird. Seit 2.6.33-rc1 verwendet der Kernel strim()
Anstatt von strstrip()
um Fehlwarnungen zu vermeiden.[57]
Haskell[edit]
Ein Trim-Algorithmus in Haskell:
import Data.Char (isSpace)
trim :: String -> String
trim = f . f
where f = reverse . dropWhile isSpace
kann wie folgt interpretiert werden: F löscht das vorangehende Leerzeichen und kehrt die Zeichenfolge um. F wird dann wieder auf seinen eigenen Ausgang angewendet. Beachten Sie, dass die Typsignatur (die zweite Zeile) optional ist.
J[edit]
Der Trim-Algorithmus in J ist eine Funktionsbeschreibung:
trimmen =. #~ [: (+./ *. +./.) ' '&~:
That is: filter (#~
) for non-space characters (' '&~:
) between leading (+./
) and (*.
) trailing (+./.
) spaces.
JavaScript[edit]
In JavaScript 1.8.1 (Firefox 3.5 und höher) und dem ECMAScript 5-Standard gibt es eine integrierte Trim-Funktion. In früheren Versionen kann es wie folgt zum Prototyp des String-Objekts hinzugefügt werden:
String.prototype.trim = function() {
return this.replace(/^s+/g, "").replace(/s+$/g, "");
};
Perl[edit]
Perl 5 hat keine eingebaute Trim-Funktion. Die Funktionalität wird jedoch häufig mit regulären Ausdrücken erreicht.
Beispiel:
$string =~ s/^s+//; # remove leading whitespace
$string =~ s/s+$//; # remove trailing whitespace
oder:
$string =~ s/^s+|s+$//g ; # remove both leading and trailing whitespace
Diese Beispiele ändern den Wert der ursprünglichen Variablen $string
.
Auch für Perl verfügbar ist StripLTSpace in String::Strip
von CPAN.
Es gibt jedoch zwei Funktionen, die häufig verwendet werden, um Leerzeichen am Ende von Zeichenfolgen zu entfernen: chomp
und chop
:
chop
entfernt das letzte Zeichen aus einem String und gibt es zurück.chomp
entfernt das (die) nachgestellte(n) Newline-Zeichen aus einer Zeichenfolge, falls vorhanden. (Was einen Zeilenumbruch ausmacht, ist $INPUT_RECORD_SEPARATOR abhängig).
In Raku, der kommenden Schwestersprache von Perl, haben Strings eine trim
Methode.
Beispiel:
$string = $string.trim; # remove leading and trailing whitespace
$string .= trim; # same thing
Tcl[edit]
Die Tcl string
Befehl hat drei relevante Unterbefehle: trim
, trimright
und trimleft
. Für jeden dieser Befehle kann ein zusätzliches Argument angegeben werden: eine Zeichenfolge, die einen zu entfernenden Zeichensatz darstellt – der Standardwert ist Leerraum (Leerzeichen, Tabulator, Zeilenumbruch, Wagenrücklauf).
Beispiel für das Trimmen von Vokalen:
set string onomatopoeia
set trimmed [string trim $string aeiou] ;# result is nomatop
set r_trimmed [string trimright $string aeiou] ;# result is onomatop
set l_trimmed [string trimleft $string aeiou] ;# result is nomatopoeia
XSLT[edit]
XSLT beinhaltet die Funktion normalize-space(string)
wodurch führende und nachgestellte Leerzeichen entfernt werden, zusätzlich zum Ersetzen jeglicher Leerzeichenfolgen (einschließlich Zeilenumbrüche) durch ein einzelnes Leerzeichen.
Beispiel:
name='trimmed'>
select='normalize-space(string)'/>
XSLT 2.0 enthält reguläre Ausdrücke, die einen weiteren Mechanismus zum Trimmen von Zeichenfolgen bieten.
Eine andere XSLT-Technik zum Trimmen ist die Verwendung des XPath 2.0 substring()
Funktion.
Verweise[edit]
- ^ ein B C D e der Index kann negativ sein, was dann die Anzahl der Stellen vor dem Ende der Zeichenfolge angibt.
- ^ In Rust ist die
str::chars
Methode iteriert über Codepunkte und diestd::iter::Iterator::nth
Methode auf Iteratoren gibt den null-indizierten n-ten Wert aus dem Iterator zurück, oderNone
. - ^ der Index kann nicht negativ sein, verwenden *-N wobei N die Anzahl der Stellen vor dem Ende der Zeichenfolge angibt.
- ^ In C++ ist das überladene
operator<=>
Methode auf a Schnur gibt a . zurückstd::strong_ordering
Objekt (sonststd::weak_ordering
):less
,equal
(gleich wieequivalent
), odergreater
. - ^ gibt WENIGER, GLEICH oder GRÖßER zurück
- ^ gibt LT, EQ oder GT . zurück
- ^ kehrt zurück
.TRUE.
oder.FALSE.
. Diese Funktionen basieren auf der ASCII-Sortierreihenfolge. - ^ ein B IBM-Erweiterung.
- ^ In Rust ist die
Ord::cmp
Methode auf a Schnur kehrt zurückOrdering
:Less
,Equal
, oderGreater
. - ^ ein B C D e F In Rust sind die Betreiber
==
und!=
und die Methodeneq
,ne
werden umgesetzt von derPartialEq
Merkmal und die Operatoren<
,>
,<=
,>=
und die Methodenlt
,gt
,le
,ge
werden umgesetzt von derPartialOrd
Merkmal. - ^ Die Operatoren verwenden die Standardsortierreihenfolge des Compilers.
- ^ modifiziert
string1
, die genügend Platz haben muss, um das Ergebnis zu speichern - ^ In Rust ist die
+
Betreiber wird durch dieAdd
Merkmal. - ^ Siehe die
str::contains
Methode. - ^ Siehe die
std::basic_string::contains
Methode. - ^ ein B startpos ist die IBM-Erweiterung.
- ^ ein B Siehe die
str::find
Methode. - ^
startpos
ist die IBM-Erweiterung. - ^ "Im Fortran-Wiki scannen". Fortranwiki.org. 2009-04-30. Abgerufen 2013-08-18.
- ^ "im Fortran-Wiki überprüfen". Fortranwiki.org. 2012-05-03. Abgerufen 2013-08-18.
- ^
formatstring
muss zur Kompilierzeit ein festes Literal sein, damit es den richtigen Typ hat. - ^ Sehen
std::format
, die von der Rust . importiert wird Auftakt damit es unter dem Namen verwendet werden kannformat
. - ^ Siehe die
slice::join
Methode. - ^ Wenn n größer als die Länge des Strings ist, wird im Debug-Modus ArrayRangeException geworfen, im Release-Modus ist das Verhalten nicht spezifiziert.
- ^ Wenn n größer als die Länge des Strings ist, wirft Java eine IndexOutOfBoundsException
- ^ ein B wenn n größer als die Länge des Strings ist, wird Invalid_argument . ausgelöst
- ^ ein B Wenn n größer als die Länge des Strings ist, werfen Sie die Nachricht "StringTake::take:"
- ^ ein B C In Rust werden Strings in Bezug auf Byte-Offsets indiziert, und es kommt zur Laufzeitpanik, wenn der Index außerhalb der Grenzen liegt oder zu ungültigem UTF-8 führen würde. EIN
&str
(String-Referenz) kann sein indexiert nach verschiedenen Arten von Bereichen, einschließlichRange
(0..n
),RangeFrom
(n..
), undRangeTo
(..n
), weil sie alle dieSliceIndex
Eigenschaft mitstr
der Typ sein, der indiziert wird. Diestr::get
-Methode ist der nicht in Panik geratene Weg zum Indexieren. Es kehrt zurückNone
in den Fällen, in denen die Indexierung in Panik geraten würde. - ^ Ruby fehlt Unicode-Unterstützung
- ^ Siehe die
str::len
Methode. - ^ In Rust ist die
str::chars
Methode iteriert über Codepunkte und diestd::iter::Iterator::count
-Methode auf Iteratoren verbraucht den Iterator und gibt die Gesamtzahl der Elemente im Iterator zurück. - ^ arbeitet mit einem Zeichen
- ^ ein B Die
transform
Funktion existiert in derstd::
Namensraum. Sie müssen die
Header-Datei, um sie zu verwenden. Dietolower
undtoupper
Funktionen befinden sich im globalen Namensraum, der von der
Header-Datei. Diestd::tolower
undstd::toupper
Namen sind überladen und können nicht übergeben werdenstd::transform
ohne eine Umwandlung, um eine Mehrdeutigkeit der Funktionsüberladung aufzulösen, zBstd::transform(string.begin(), string.end(), result.begin(), (int (*)(int))std::tolower);
- ^
std::string
nur, Ergebnis wird in String gespeichertresult
das ist mindestens so lang wiestring
, und kann sein oder auch nichtstring
selbst - ^ ein B nur ASCII-Zeichen, da Ruby keine Unicode-Unterstützung hat
- ^ Siehe die
str::to_lowercase
Methode. - ^ Siehe die
str::replace
Methode. - ^ ein B C D e Die Zeichenfolge "find" in diesem Konstrukt wird als regulärer Ausdruck interpretiert. Bestimmte Zeichen haben in regulären Ausdrücken eine besondere Bedeutung. Wenn Sie eine Zeichenfolge buchstäblich finden möchten, müssen Sie die Sonderzeichen in Anführungszeichen setzen.
- ^ dritter Parameter ist nicht standardmäßig
- ^ In Rust ist die
str::chars
Methode iteriert über Codepunkte, diestd::iter::Iterator::rev
Methode auf reversible Iteratoren (std::iter::DoubleEndedIterator
) erstellt einen umgekehrten Iterator, und diestd::iter::Iterator::collect
-Methode verbraucht den Iterator und erstellt eine Sammlung (die hier als aString
mit der Turbofish-Syntax) aus den Elementen des Iterators. - ^ Siehe die
str::rfind
Methode. - ^ "Annotierter ES5". Es5.github.com. Abgerufen 2013-08-18.
- ^ Wenn n größer als die Länge des Strings ist, wird im Debug-Modus eine ArrayRangeException geworfen und im Release-Modus ein nicht spezifiziertes Verhalten
- ^ Siehe die
str::split
undstr::rsplit
Methoden. - ^ ein B C D e F g
startpos
kann negativ sein, was angibt, dass diese Anzahl von Stellen vor dem Ende der Zeichenfolge beginnen soll. - ^ ein B
numChars
kann negativ sein, was angibt, dass diese Anzahl von Stellen vor dem Ende der Zeichenfolge beendet werden soll. - ^
startpos
kann nicht negativ sein, verwenden * - Startposition um anzugeben, dass diese Anzahl von Stellen vor dem Ende der Zeichenfolge beginnen soll. - ^
numChars
kann nicht negativ sein, verwenden * - numChars um anzugeben, dass diese Anzahl von Stellen vor dem Ende der Zeichenfolge beendet werden soll. - ^ ein B C D e
endpos
kann negativ sein, was angibt, dass diese Anzahl von Stellen vor dem Ende der Zeichenfolge beendet werden soll. - ^
std::string
nur, Ergebnis wird in String gespeichert Ergebnis das ist mindestens so lang wie Schnur, und kann sein oder auch nicht Schnur selbst - ^ In Rust ist die
str::to_uppercase
Methode gibt ein neu zugewiesenes . zurückString
wobei alle Kleinbuchstaben gemäß den Unicode-Regeln in Großbuchstaben umgewandelt werden. - ^ In Rust ist die
str::trim
Methode gibt einen Verweis auf das Original zurück&str
. - ^ "Trim – GNU Pascal priručnik". Gnu-pascal.de. Abgerufen 2013-08-24.
- ^ "String-Bibliothek-Vergleich". Und.org. Abgerufen 2013-08-24.
- ^ "Nutzung – 1.54.0". Boost.org. 2013-05-22. Abgerufen 2013-08-24.
- ^ [1] Archiviert 2. August 2009, an der Wayback Machine
- ^ dankamongmen. "sprezzos-kernel-packaging/changelog at master · dankamongmen/sprezzos-kernel-packaging · GitHub". Github.com. Abgerufen 2016-05-29.
Recent Comments