Stringfunktionen werden in Computerprogrammiersprachen verwendet, um eine Zeichenkette zu bearbeiten oder Informationen über eine Zeichenkette abzufragen (einige können beides).

Die meisten Programmiersprachen mit einem String- Datentyp bieten auch String-Funktionen, obwohl es innerhalb jeder Sprache weitere, weniger komplexe Möglichkeiten zur direkten String-Verarbeitung geben kann. In objektorientierten Sprachen werden String-Funktionen häufig als Eigenschaften und Methoden von String-Objekten implementiert. In funktionalen und listenbasierten Sprachen wird ein String als Liste (von Zeichencodes) dargestellt; daher können alle Listenmanipulationsprozeduren als String-Funktionen betrachtet werden. Allerdings implementieren solche Sprachen mitunter auch eine Teilmenge expliziter, stringspezifischer Funktionen.

Für Funktionen, die Zeichenketten bearbeiten, verwenden moderne objektorientierte Sprachen wie C# und Java unveränderliche Zeichenketten und geben eine Kopie (im neu zugewiesenen dynamischen Speicher) zurück. Andere Sprachen wie C bearbeiten hingegen die Originalzeichenkette, sofern der Programmierer die Daten nicht in eine neue Zeichenkette kopiert. Siehe beispielsweise die Verkettung weiter 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 11 zurückgeben.

Andere Programmiersprachen verfügen möglicherweise über Stringfunktionen mit ähnlicher oder sogar identischer Syntax, Parametern oder Ergebnissen. Beispielsweise wird die Längenfunktion in vielen Sprachen üblicherweise als `len(string)` dargestellt . Die folgende Liste gängiger Funktionen soll dazu beitragen, diese Verwirrung zu minimieren.

Häufig verwendete Stringfunktionen (mehrsprachige Referenz)

Nachfolgend sind die in vielen Programmiersprachen üblichen Stringfunktionen inklusive ihrer verschiedenen Bezeichnungen aufgeführt. Diese Liste soll Programmierern helfen, die entsprechende Funktion in ihrer Sprache zu finden. Stringverkettung und reguläre Ausdrücke werden auf separaten Seiten behandelt. Anweisungen in Guillemets („…“) sind optional. [ 1 ]

CharAt

Definition charAt(string,integer)Gibt ein Zeichen zurück.
Beschreibung Gibt das Zeichen an der entsprechenden Indexposition in der Zeichenkette zurück.
Äquivalent Siehe Teilzeichenkette der Länge 1 Zeichen.
FormatSprachenBasisindex​
string[i]ALGOL 68 , APL , Julia , Pascal , Object Pascal ( Delphi ), Seed71
string[i]C , C++ , C# , Cobra , D , FreeBASIC , Go , Python , [ 2 ] PHP , Ruby , [ 2 ] Windows PowerShell , JavaScript , APL0
string{i}PHP (veraltet in Version 5.3) 0
string(i)Ada≥1
Mid(string,i,1)VB1
MID$(string,i,1)BASIC1
string.Chars(i)VB.NET0
string(i:i)Fortran1
string.charAt(i)Java , JavaScript0
string.[i]OCaml , F#0
string.chars().nth(i)Rust [ 3 ]0
string[i,1]Wählen Sie die Basisversion1
String.sub (string, i)Standard ML0
string !! iHaskell0
(string-ref stringi)Schema0
(char stringi)Common Lisp0
(elt stringi)ISLISP0
(get stringi)Clojure0
substr(string, i, 1)Perl 5 [ 2 ]0
substr(string, i, 1)string.substr(i, 1)Raku [ 4 ]0
substr(string, i, 1)PL/I1
substr(string, i, 1)REXX1
string.at(i)C++ (STL) (mit Bereichsprüfung) 0
lists:nth(i, string)Erlang1
[string characterAtIndex:i]Objective-C ( NSString *nur) 0
string.sub(string, i, i)(string):sub(i, i)Lua [ 2 ]1
string at: iSmalltalk (mit Bereichsprüfung) 1
string index string iTcl0
StringTake[string, {i}]Mathematica , Wolfram Language [ 2 ]1
string@iEiffel1
string (i:1)COBOL1
${string_param:i:1}Bash0
i⌷stringAPL0 oder 1
{ Beispiel in Pascal } var MyStr : string = 'Hello, World' ; MyChar : Char ; begin MyChar := MyStr [ 2 ] ; // 'e'
# Beispiel in ALGOL 68 # "Hallo Welt"[2]; // 'e' 
// Beispiel in C #include <stdio.h>char myStr1 [] = "Hello, World" ; printf ( "%c" , * ( myStr1 + 1 )); // 'e' printf ( "%c" , * ( myStr1 + 7 )); // 'W' printf ( "%c" , myStr1 [ 11 ]); // 'd' printf ( "%s" , myStr1 ); // 'Hello, World' printf ( "%s" , "Hello(2), World(2)" ); // 'Hello(2), World(2)'
import std ;using std :: string ;char myStr1 [] = "Hello(1), World(1)" ; string myStr2 = "Hello(2), World(2)" ; std :: println ( "Hello(3), World(3)" ); // 'Hello(3 ) , World(3)' std :: println ( " {}" , myStr2 [ 6 ]); // '2' std :: println ( "{}" , myStr1.substr ( 5 , 3 )); // '(1)'
// Beispiel in C# "Hello, World" [ 2 ]; // 'l'
# Beispiel in Perl 5 substr ( "Hello, World" , 1 , 1 ); # 'e'
# Beispiele in Python "Hello, World" [ 2 ] # 'l' "Hello, World" [ - 3 ] # 'r'
# Beispiel in Raku "Hello, World" . substr ( 1 , 1 ); # 'e'
' Beispiel in Visual Basic Mid ( "Hello, World" , 2 , 1 )
' Beispiel 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')

Compare (integer result)

Definition compare(string1,string2) returns integer.
Description Compares two strings to each other. If they are equivalent, a zero is returned. Otherwise, most of these routines will return a positive or negative result corresponding to whether string1 is lexicographically greater than, or less than, respectively, than string2. The exceptions are the Scheme and Rexx routines which return the index of the first mismatch, and Smalltalk which answer a comparison code telling how the receiver sorts relative to string parameter.
FormatLanguages
IF string1<string2 THEN -1 ELSE ABS (string1>string2) FIALGOL 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 string2Perl, Raku
string1 compare: string2Smalltalk (Squeak, Pharo)
string1 <=> string2Ruby, C++ (STL, C++20)[5]
string1.compare(string2)C++ (STL), Swift (Foundation)
compare(string1, string2)Rexx, Seed7
compare(string1, string2, pad)Rexx
CompareStr(string1, string2)Pascal, Object Pascal (Delphi)
string1.compareTo(string2)Cobra, Java
string1.CompareTo(string2)VB .NET, C#, F#
(compare string1string2)Clojure
(string= string1string2)Common Lisp
(string-compare string1string2p<p=p>)Scheme (SRFI 13)
(string= string1string2)ISLISP
compare string1string2OCaml
String.compare (string1, string2)Standard ML[6]
compare string1string2Haskell[7]
[string]::Compare(string1, string2)Windows PowerShell
[string1 compare:string2]Objective-C (NSString * only)
LLT(string1,string2)LLE(string1,string2)LGT(string1,string2)LGE(string1,string2)Fortran[8]
string1.localeCompare(string2)JavaScript
bytes.Compare([]byte(string1),[]byte(string2))Go
string compare string1string2Tcl
compare(string1,string2,count)PL/I[9]
string1.cmp(string2)Rust[10]
# Example in Perl 5"hello"cmp"world";# returns -1
# Example in Pythoncmp("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 */
; Beispiel in Scheme ( use-modules ( srfi srfi-13 )) ; gibt den Index der Nichtübereinstimmung zurück: 0 ( string-compare "hello" "world" values ​​values ​​values ​​)

Vergleichen (basierend auf relationalen Operatoren, boolesches Ergebnis)

Definition string1 OP string2OR gibt einen booleschen Wert zurück. (compare string1 string2)
Beschreibung Vergleicht zwei Zeichenketten lexikografisch mithilfe eines relationalen Operators oder einer Funktion. Gibt ein boolesches Ergebnis zurück.
FormatSprachen
string1 OP string2, wobei OPes sich um eines der folgenden Symbole handeln kann : =, <>, <, >, <= und >=Pascal , Object Pascal ( Delphi ), OCaml , Seed7 , Standard ML , BASIC , VB , VB .NET , F#
string1 OP string2, wobei OPjedes der folgenden Zeichen verwendet werden kann : =, /=, ≠, <, >, <=, ≤ und ≥ ; außerdem: EQ, NE, LT, LE, GE und GTALGOL 68
(stringOP? string1string2), wobei OPes sich um eines der folgenden Symbole handeln kann: =, -ci=, <, -ci<, >, -ci>, <=, -ci<=, >= und -ci>= (Operatoren, die mit ' ' beginnen, unterscheiden nicht zwischen Groß- und Kleinschreibung). -ciSchema
(stringOP string1string2), wobei OPes sich um eines der folgenden Elemente handeln kann: =, -ci=, <>, -ci<>, <, -ci<, >, -ci>, <=, -ci<=, >= und -ci>= (Operatoren, die mit ' -ci ' beginnen, unterscheiden nicht zwischen Groß- und Kleinschreibung). Schema (SRFI 13)
(stringOP string1string2), wobei OPes sich um eines der folgenden Symbole handeln kann: =, -gleich, /=, -ungleich, <, -kleiner, >, -größer, <=, -nichtgrößer, >= und -nichtkleiner (die verbalen Operatoren unterscheiden nicht zwischen Groß- und Kleinschreibung). Common Lisp
(stringOP string1string2), wobei OPes sich um eines der folgenden Symbole handeln kann : =, /=, <, >, <= und >=ISLISP
string1 OP string2, wobei OPes sich um eines der folgenden Symbole handeln kann : =, \=, <, >, <= und >= [ 11 ]Rexx
string1 OP string2, wobei OPes sich um eines der folgenden Symbole handeln kann: =, ¬=, <, >, <=, >=, ¬< und ¬> [ 12 ]PL/I
string1 OP string2, wobei OPes sich um eines der folgenden Symbole handeln kann : =, /=, <, >, <= und >=Ada
string1 OP string2, wobei OPes sich um eines der folgenden Symbole handeln kann: ==, /=, <, >, =< und >=Erlang
string1 OP string2, wobei OPes sich um eines der folgenden Symbole handeln kann: ==, /=, <, >, <= und >=Haskell
string1 OP string2, wobei OPes sich um eines der folgenden Elemente handeln kann: eq , ne , lt , gt , le und gePerl , Raku
string1 OP string2, wobei OPes sich um eines der folgenden Symbole handeln kann: ==, !=, <, >, <= und >=C++ (STL), C# , D , Go , JavaScript , Python , PHP , Ruby , Rust , [ 13 ] Swift
string1 OP string2, wobei OPes sich um einen der folgenden Operatoren handeln kann: -eq, -ceq, -ne, -cne, -lt, -clt, -gt, -cgt, -le, -cle, -ge und -cge (Operatoren, die mit ' c ' beginnen, unterscheiden zwischen Groß- und Kleinschreibung). Windows PowerShell
string1 OP string2, wobei OPes sich um eines der folgenden Symbole handeln kann: ==, ~=, <, >, <= und >=Lua
string1 OP string2, wobei OPes sich um eines der folgenden Zeichen handeln kann : =, ~=, <, >, <= und >=Smalltalk
string1 OP string2, wobei OPes sich um eines der folgenden Symbole handeln kann: ==, /=, <, >, <= und >=; Außerdem: .EQ., .NE., .LT., .LE., .GT. und .GE.Fortran [ 14 ]
string1 OP string2wobei OPjedes der Zeichen =, <>, <, >, <=, >= sowie entsprechende Wortformen verwendet werden können.COBOL
string1 OP string2wobei OPes sich um jedes der folgenden Zeichen handeln kann : ==, <>, <, >, <= und >=Kobra
string1 OP string2Die Syntax bietet zwar die Möglichkeit, die Zeiger auf die Zeichenketten zu vergleichen, nicht deren Inhalt. Verwenden Sie stattdessen die Funktion `Compare(integer result)`. C , Java
string1.METHOD(string2)Wo METHODbefindet sich eines der eq, ne, gt, lt, ge,leRust [ 13 ]
% Beispiel in Erlang "hello" > "world" . % gibt false zurück
# Beispiel in Raku "art" gt "painting" ; # gibt False zurück "art" lt "painting" ; # gibt True zurück
# Beispiel in Windows PowerShell "hello" -gt "world" # gibt false zurück
;; Beispiel in Common Lisp ( string> "art" "painting" ) ; gibt nil zurück ( string< "art" "painting" ) ; gibt einen Wert ungleich nil zurück

Verkettung

Definition concatenate(string1,string2)Gibt eine Zeichenkette zurück.
Beschreibung Verkettet zwei Zeichenketten miteinander und gibt die resultierende Zeichenkette zurück. In manchen Sprachen wie C sind Zeichenketten veränderbar; dort wird die zweite Zeichenkette an die erste angehängt und die veränderte Zeichenkette zurückgegeben.
FormatSprachen
string1adjacent_tostring2Rexx (Widerlager, gleichbedeutend mit ) string1 || string2
string1whitespacestring2Rexx (entspricht ) string1 || ' ' || string2
string1 & string2Ada , FreeBASIC , Seed7 , BASIC , VB , VB .NET , COBOL (nur zwischen Literalen)
strcat(string1, string2)C , C++ ( nur) [ 15 ]char*
string1 . string2Perl , PHP
string1 + string2ALGOL 68 , C++ (STL), C# , Cobra , FreeBASIC , Go , Pascal , Object Pascal ( Delphi ), Java , JavaScript , Windows PowerShell , Python , Ruby , Rust , [ 16 ] F# , Swift , Turing , VB
string1 ~ string2D , Raku
(string-append string1string2)Schema , ISLISP
(concatenate 'string string1string2)Common Lisp
(str string1string2)Clojure
string1 || string2Rexx , SQL , PL/I
string1 // string2Fortran
string1 ++ string2Erlang , Haskell
string1 ^ string2OCaml , Standard ML , F#
[string1 stringByAppendingString:string2]Objective-C ( NSString *nur)
string1 .. string2Lua
string1 , string2Smalltalk , APL
string1string2SNOBOL
string1string2Bash
string1 <> string2Mathematica
Zeichenkette 1 Zeichenkette 2 verkettenTcl
{ Beispiel in Pascal } 'abc' + 'def' ; // gibt "abcdef" zurück
// Beispiel in C# "abc" + "def" ; // gibt "abcdef" zurück
' Beispiel in Visual Basic "abc" & "def" ' gibt "abcdef" zurück "abc" "abc" + "def" ' gibt "abcdef" zurück "abc" & Null ' gibt "abc" zurück "abc" "abc" + Null ' gibt Null zurück
// Beispiel in D "abc" ~ "def" ; // gibt "abcdef" zurück
;; Beispiel in Common Lisp ( concatenate 'string "abc " "def " "ghi" ) ; gibt "abc def ghi" zurück
# Beispiel in Perl 5 "abc" . "def" ; # gibt "abcdef" zurück "Perl" . 5 ; # gibt "Perl 5" zurück
/* Beispiel in PL/I */ "abc" || "def" /* gibt "abcdef" zurück */
# Beispiel in Raku "abc" ~ "def" ; # gibt "abcdef" zurück "Perl" ~ 6 ; # gibt "Perl 6" zurück
/* Beispiel in Rexx */ "Strike" 2 /* gibt "Strike2" zurück */ "Strike" 2 /* gibt "Strike 2" zurück */

Enthält

Definition contains(string,substring)gibt einen booleschen Wert zurück
Beschreibung Gibt zurück, ob eine Zeichenkette eine Teilzeichenkette enthält . Dies entspricht der Verwendung der Funktion „Suchen“ und der anschließenden Prüfung, ob die in der dritten Spalte des Abschnitts „Suchen“ aufgeführte Fehlerbedingung nicht erfüllt ist. Einige Programmiersprachen bieten jedoch eine einfachere Möglichkeit, diesen Test auszudrücken.
Verwandt Finden
FormatSprachen
string_in_string(string, loc int, substring)ALGOL 68
ContainsStr(string, substring)Object Pascal ( Delphi )
strstr(string, substring) != NULLC , C++ ( char *nur)
string.Contains(substring)C# , VB.NET , Windows PowerShell , F#
string.contains(substring)Cobra , Java (1.5+), Raku , Rust , [ 17 ] C++ ( C++23 ) [ 18 ]
string.indexOf(substring) >= 0JavaScript
strpos(string, substring) !== falsePHP
str_contains(string, substring)PHP (8+)
pos(string, substring) <> 0Seed7
substring in stringCobra , Python (2.3+)
string.find(string, substring) ~= nilLua
string.include?(substring)Rubin
Data.List.isInfixOf substringstringHaskell ( GHC 6.6+)
string includesSubstring: substringSmalltalk ( Squeak , Pharo , Smalltalk/X )
String.isSubstring substringstringStandard ML
(search substringstring)Common Lisp
(not(null(string-indexsubstringstring)))ISLISP
(substring? substringstring)Clojure
! StringFreeQ[string, substring]Mathematica
index(string, substring, startpos)>0Fortran, PL/I [ 19 ]
index(string, substring, occurrence)>0Wählen Sie die Basisversion
strings.Contains(string, substring)Gehen
string.find(substring) != string::nposC++
[string containsString:substring]Objective-C ( NSString *nur, iOS 8+/OS X 10.10+)
string.rangeOfString(substring) != nilSwift (Foundation)
∨/substring⍷stringAPL
¢ Beispiel in ALGOL 68 ¢ string in string("e", loc int , "Hello mate"); ¢ gibt true zurück ¢ string in string("z", loc int , "word"); ¢ gibt false zurück ¢ 
// Beispiel in C# "Hello mate" . Contains ( "e" ); // gibt true zurück "word" . Contains ( "z" ); // gibt false zurück
# Beispiel in Python "e" in "Hello mate" # gibt true zurück "z" in "word" # gibt false zurück
# Beispiel in Raku "Good morning!" . contains ( 'z' ) # gibt False zurück "¡Buenos días!" . contains ( 'í' ); # gibt True zurück
" Beispiel in Smalltalk " 'Hallo Kumpel' includesSubstring: 'e' " gibt true zurück " ' Wort ' includesSubstring: 'z' " gibt false zurück

Gleichwertigkeit

Prüft, ob zwei Zeichenketten gleich sind. Siehe auch #Compare und #Compare . Gleichheitsprüfungen mit einem generischen Compare und einem ganzzahligen Ergebnis sind nicht nur verwirrend für den Programmierer, sondern oft auch deutlich aufwändiger; dies gilt insbesondere bei der Verwendung von „ C-Zeichenketten “.

FormatSprachen
string1 == string2Python , C++ (STL), C# , Cobra , Go , JavaScript (Ähnlichkeit), PHP (Ähnlichkeit), Ruby , Rust , [ 13 ] Erlang , Haskell , Lua , D , Mathematica , Swift
string1 === string2JavaScript , PHP
string1 == string2string1 .EQ. string2Fortran
strcmp(string1, string2) == 0C
(string=? string1string2)Schema
(string= string1string2)Common Lisp , ISLISP
string1 = string2ALGOL 68 , Ada , Object Pascal ( Delphi ), OCaml , Pascal , Rexx , Seed7 , Standard ML , BASIC , VB , VB.NET , F# , Smalltalk , PL/I , COBOL
test string1 = string2[ string1 = string2 ]Bourne-Muschel
string1 eq string2Perl , Raku , Tcl
string1.equals(string2)Cobra , Java
string1.Equals(string2)C#
string1 -eq string2[string]::Equals(string1, string2)Windows PowerShell
[string1 isEqualToString:string2][string1 isEqual:string2]Objective-C ( NSString *nur)
string1 ≡ string2APL
string1.eq(string2)Rust [ 13 ]
// Beispiel in C# "hello" == "world" // gibt false zurück
' Beispiel in Visual Basic "hello" = "world" ' gibt false zurück
# Beispiele in Perl 5 'hello' eq 'world' # gibt 0 zurück 'hello' eq 'hello' # gibt 1 zurück
# Beispiele in Raku 'hello' eq 'world' # gibt False zurück 'hello' eq 'hello' # gibt True zurück
# Beispiel in Windows PowerShell "hello" -eq "world" # gibt false zurück
⍝ Beispiel in APL: 'hello' ≡ 'world' ⍝ gibt 0 zurück

Finden

Definition find(string,substring)Gibt eine ganze Zahl zurück
Beschreibung Gibt die Position des ersten Vorkommens der Teilzeichenkette in der Zeichenkette zurück . Wird die Teilzeichenkette nicht gefunden, geben die meisten dieser Funktionen einen ungültigen Indexwert zurück – -1 bei nullbasierter Indizierung, 0 bei einsbasierter Indizierung – oder einen Wert, der als boolescher Wert FALSE interpretiert wird.
Verwandt instrrev
FormatSprachenFalls nicht gefunden
string in string(substring, pos, string[startpos:])ALGOL 68Gibt BOOL zurück: TRUE oder FALSE, und die Position in REF INT pos.
InStr(«startpos,»string,substring)VB (Positionen beginnen bei 1) gibt 0 zurück
INSTR$(string,substring)BASIS (Positionen beginnen bei 1) gibt 0 zurück
index(string,substring)AWKgibt 0 zurück
index(string,substring«,startpos»)Perl 5 Rückgabewert −1
index(string,substring«,startpos»)string.index(substring,«,startpos»)RakuGibt Null zurück
instr(«startpos,»string,substring)FreeBASICgibt 0 zurück
strpos(string,substring«,startpos»)PHPgibt FALSCH zurück
locate(string, substring)IngresGibt die Zeichenkettenlänge + 1 zurück
strstr(string, substring)C , C++ ( nur, gibt einen Zeiger auf das erste Zeichen zurück) char*Gibt NULL zurück
std.string.indexOf(string, substring)DRückgabewert −1
pos(string, substring«, startpos»)Seed7gibt 0 zurück
strings.Index(string, substring)GehenRückgabewert −1
pos(substring, string)Pascal , Object Pascal ( Delphi ) gibt 0 zurück
pos(substring, string«,startpos»)Rexxgibt 0 zurück
string.find(substring«,startpos»)C++ (STL) gibt std::string::npos zurück
string.find(substring«,startpos«,endpos»»)PythonRückgabewert −1
string.index(substring«,startpos«,endpos»»)löst ValueError aus
string.index(substring«,startpos»)Rubingibt nil zurück
string.indexOf(substring«,startpos»)Java , JavaScriptRückgabewert −1
string.IndexOf(substring«,startpos«, charcount»»)VB .NET , C# , Windows PowerShell , F#Rückgabewert −1
string:str(string, substring)Erlanggibt 0 zurück
(string-contains stringsubstring)Schema (SRFI 13) Gibt #f zurück
(search substringstring)Common LispRückgabewert: NIL
(string-index substringstring)ISLISPRückgabennil
List.findIndex (List.isPrefixOf substring) (List.tails string)Haskell (gibt nur den Index zurück ) Gibt nichts zurück
Str.search_forward (Str.regexp_string substring) string 0OCamllöst Not_found aus
Substring.size (#1 (Substring.position substring (Substring.full string)))Standard MLGibt die Länge der Zeichenkette zurück
[string rangeOfString:substring].locationObjective-C ( NSString *nur) gibt NSNotFound zurück
string.find(string, substring)(string):find(substring)Luagibt nil zurück
string indexOfSubCollection: substring startingAt: startpos ifAbsent: aBlockstring findString: substring startingAt: startposSmalltalk ( Squeak , Pharo ) Die Auswertung eines Blocks, der eine Block-Closure (oder ein beliebiges Objekt mit Wertverständnis) ist, gibt 0 zurück.
startpos = INDEX(string, substring «,back» «, kind»)FortranGibt 0 zurück, wenn die Teilzeichenkette nicht in der Zeichenkette enthalten ist; gibt LEN(Zeichenkette)+1 zurück, wenn die Teilzeichenkette leer ist.
POSITION(substring IN string)SQLGibt 0 zurück (Positionen beginnen bei 1)
index(string, substring, startpos )PL/I [ 19 ]Gibt 0 zurück (Positionen beginnen bei 1)
index(string, substring, occurrence )Wählen Sie die BasisversionGibt 0 zurück, wenn die Teilzeichenkette nicht in der Zeichenkette vorkommt; (Positionen beginnen bei 1)
string.indexOf(substring«,startpos«, charcount»»)KobraRückgabewert −1
string first substring string startposTclRückgabewert −1
(substring⍷string)⍳1APLGibt 1 + die letzte Position im String zurück
string.find(substring)Rust [ 20 ]RückgabenNone

Beispiele

  • Common Lisp
    ( Suche "e" "Hallo Kumpel" ) ; gibt 1 zurück ( Suche "z" "Wort" ) ; gibt NIL zurück
  • C#
    "Hello mate" . IndexOf ( "e" ); // gibt 1 zurück "Hello mate" . IndexOf ( "e" , 4 ); // gibt 9 zurück "word" . IndexOf ( "z" ); // gibt -1 zurück
  • Raku
    "Hallo!" . index ( 'e' ) # gibt 1 zurück "Hallo!" . index ( 'z' ) # gibt Nil zurück
  • Schema
    ( use-modules ( srfi srfi-13 )) ( string-contains "Hello mate" "e" ) ; returns 1 ( string-contains "word" "z" ) ; returns #f
  • Visual Basic
    ' Beispiele in InStr ( "Hello mate" , "e" ) ' gibt 2 zurück InStr ( 5 , "Hello mate" , "e" ) ' gibt 10 zurück InStr ( "word" , "z" ) ' gibt 0 zurück
  • Smalltalk
    'Hello mate' indexOfSubCollection: 'ate' "returns 8"
    'Hello mate' indexOfSubCollection: 'late' "returns 0"
    Ich ' Hallo Kumpel ' indexOfSubCollection: 'late' ifAbsent: [ 99 ] "gibt 99 zurück"
    'Hallo Kumpel' indexOfSubCollection: 'late' ifAbsent: [ self error ] "löst eine Ausnahme aus"

Charakter finden

Definition find_character(string,char)Gibt eine ganze Zahl zurück
Beschreibung Gibt die Position des ersten Vorkommens des Zeichens char in der Zeichenkette zurück . Wird das Zeichen nicht gefunden, geben die meisten dieser Funktionen einen ungültigen Indexwert zurück – -1 bei nullbasierter Indizierung, 0 bei einsbasierter Indizierung – oder einen Wert, der als boolescher Wert FALSE interpretiert wird. Dies lässt sich als Spezialfall von #Find mit einer Zeichenkette aus nur einem Zeichen realisieren; in vielen Sprachen ist es jedoch einfacher oder effizienter, nur ein einzelnes Zeichen zu finden. Da Zeichen und Zeichenketten in vielen Sprachen unterschiedliche Datentypen sind, ist eine solche Funktion praktisch.
Verwandt finden
FormatSprachenFalls nicht gefunden
char in string(char, pos, string[startpos:])ALGOL 68Gibt BOOL zurück : TRUE oder FALSE , und die Position in REF INT pos .
instr(string, any char«,startpos»)(Zeichenkette, kann mehr als ein Zeichen enthalten; in diesem Fall wird die Position des ersten Auftretens eines dieser Zeichen zurückgegeben.) FreeBASICgibt 0 zurück
strchr(string,char)C , C++ ( nur, gibt einen Zeiger auf ein Zeichen zurück) char*Gibt NULL zurück
std.string.find(string, dchar)DRückgabewert −1
string.find(char«,startpos»)C++ (STL) gibt std::string::npos zurück
pos(string, char«, startpos»)Seed7gibt 0 zurück
strings.IndexRune(string,char)GehenRückgabewert −1
string.indexOf(char«,startpos»)Java , JavaScriptRückgabewert −1
string.IndexOf(char«,startpos«, charcount»»)VB .NET , C# , Windows PowerShell , F#Rückgabewert −1
(position charstring)Common LispRückgabewert: NIL
(char-index charstring)ISLISPgibt nil zurück
List.elemIndex charstringHaskell (gibt zurück ) Just indexGibt nichts zurück
String.index stringcharOCamllöst Not_found aus
position = SCAN (string, set «, back» «, kind»)position = VERIFY (string, set «, back» «, kind»)[a]FortranGibt Null zurück
string indexOf: char ifAbsent: aBlockstring indexOf: charstring includes: charSmalltalkDie Auswertung, aBlockdie einen Wert BlockClosure(oder einen beliebigen Wert, der ein Objekt versteht) zurückgibt, gibt 0 zurück trueoderfalse
index(string, char, startpos )PL/I [ 21 ]Gibt 0 zurück (Positionen beginnen bei 1)
string.index(?char)Rubingibt nil zurück
strpos(string,char,startpos)PHPGibt „false“ zurück
string.indexOf(char«,startpos«, charcount»»)KobraRückgabewert −1
string⍳charAPLGibt 1 + die letzte Position im String zurück
string.find(substring)Rust [ 20 ]Gibt None zurück
// Beispiele in C# "Hello mate" . IndexOf ( 'e' ); // gibt 1 zurück "word" . IndexOf ( 'z' ) // gibt -1 zurück
Beispiele in Common Lisp ( position #\e "Hello mate" ) ; gibt 1 zurück ( position #\z "word" ) ; gibt NIL zurück

^a Bei einer gegebenen Zeichenmenge gibt SCAN die Position des ersten gefundenen Zeichens zurück, [ 22 ] während VERIFY die Position des ersten Zeichens zurückgibt, das nicht zur Menge gehört. [ 23 ]

Format

Definition format(formatstring, items)gibt eine Zeichenkette zurück
Beschreibung Gibt die formatierte String-Darstellung eines oder mehrerer Elemente zurück.
Format Sprachen Formatzeichenfolgensyntax
associate(file, string); putf(file, $formatstring$, items)ALGOL 68ALGOL
Format(item, formatstring)VB
sprintf(formatstring, items)Perl , PHP , Raku , RubyC
item.fmt(formatstring)RakuC
io_lib:format(formatstring, items)Erlang
sprintf(outputstring, formatstring, items)CC
std::format(formatstring, items)C++ ( C++20 ) Python
std.string.format(formatstring, items)DC
Format(formatstring, items)Object Pascal ( Delphi )
fmt.Sprintf(formatstring, items)GehenC
printfformatstringitemsUnixC
formatstring % (items)Python , RubyC
formatstring.format(items)Python.NETTO
fformatstringPython 3
Printf.sprintf formatstring[ 24 ]itemsOCaml , F#C
Text.Printf.printf formatstringitemsHaskell ( GHC ) C
formatstring printf: itemsSmalltalkC
String.format(formatstring, items)JavaC
String.Format(formatstring, items)VB .NET , C# , F#.NETTO
(format formatstringitems)Schema (SRFI 28) Lispeln
(format nil formatstringitems)Common LispLispeln
(format formatstringitems)ClojureLispeln
formatstring -f itemsWindows PowerShell.NETTO
[NSString stringWithFormat:formatstring, items]Objective-C ( NSString *nur) C
String(format:formatstring, items)Swift (Foundation) C
string.format(formatstring, items)(formatstring):format(items)LuaC
WRITE (outputstring, formatstring) itemsFortranFortran
put string(string) edit(items)(format)PL/IPL/I (ähnlich wie Fortran)
String.format(formatstring, items)Kobra.NETTO
format formatstring itemsTclC
formatnumbers ⍕ itemsformatstring ⎕FMT itemsAPLAPL
format!(formatstring, items)Rost [ 25 ]Python
// Beispiel in C# String.Format ( "Mein {0} kostet { 1:C2}" , "Stift" , 19.99 ); // gibt "Mein Stift kostet 19,99 $" zurück
// Beispiel in Object Pascal (Delphi) Format ( 'Mein %s kostet $%2f' , [ 'pen' , 1 9.99 ]) ; // gibt zurück: "Mein Stift kostet $19.99"
// Beispiel in Java String.format ( "Mein %s kostet $%2f" , "Stift" , 19.99 ); // gibt " Mein Stift kostet $19.99" zurück
# Beispiele in Raku sprintf "Mein %s kostet \$%.2f" , "Stift" , 19.99 ; # gibt "Mein Stift kostet $19.99" zurück 1 . fmt ( "%04d" ); # gibt "0001" zurück
# Beispiel in Python "Mein %s kostet $ %.2f " % ( "pen" , 19.99 ); # gibt zurück "Mein Stift kostet $19.99" "Mein {0} kostet $ {1:.2f} " . format ( "pen" , 19.99 ); # gibt zurück "Mein Stift kostet $19.99"
#Beispiel in Python 3.6+ pen = "pen" f "Mein { pen } kostet { 19.99 } " #gibt "Mein Stift kostet 19.99" zurück
Beispiel in Scheme ( format "Mein ~a kostet $~1,2F" "Stift" 19.99 ) ; gibt "Mein Stift kostet $19.99" zurück
/* Beispiel in PL/I */ put string ( some_string ) edit ( 'Mein ' , 'Stift' , ' kostet' , 19.99 )( a , a , a , p '$$$V.99' ) /* gibt "Mein Stift kostet $19.99" zurück */

Ungleichheit

Prüft, ob zwei Zeichenketten ungleich sind. Siehe auch #Equality .

FormatSprachen
string1nestring2string1 NE string2ALGOL 68 – Der Operator " ne " wird in Fettdruck dargestellt .
string1 /= string2ALGOL 68 , Ada , Erlang , Fortran , Haskell
string1 <> string2BASIC , VB , VB .NET , Pascal , Object Pascal ( Delphi ), OCaml , PHP , Seed7 , Standard ML , F# , COBOL , Cobra , Python 2 (veraltet)
string1 # string2BASIC (einige Implementierungen)
string1 ne string2Perl , Raku
(string<> string1string2)Schema (SRFI 13)
(string/= string1string2)Common Lisp
(string/= string1string2)ISLISP
(not= string1string2)Clojure
string1 != string2C++ (STL), C# , Go , JavaScript (nicht ähnlich), PHP (nicht ähnlich), Python , Ruby , Rust , [ 13 ] Swift , D , Mathematica
string1 !== string2JavaScript , PHP
string1 \= string2Rexx
string1 ¬= string2PL/I
test string1 != string2[ string1 != string2 ]Bourne-Muschel
string1 -ne string2-not[string]::Equals(string1, string2)Windows PowerShell
string1 ~= string2Lua , Smalltalk
string1 ≢ string2APL
string1.ne(string2)Rust [ 13 ]
// Beispiel in C# "hello" != "world" // gibt true zurück
' Beispiel in Visual Basic "hello" <> "world" ' gibt true zurück
;; Beispiel in Clojure ( not= "hello" "world" ) ; ⇒ true
# Beispiel in Perl 5 'hello' ne 'world' # gibt 1 zurück
# Beispiel in Raku 'hello' ne 'world' # gibt True zurück
# Beispiel in Windows PowerShell "hello" -ne "world" # gibt true zurück

Index

siehe #Finden

Index von

siehe #Finden

Instr

siehe #Finden

instrrev

siehe #rfind

verbinden

Definition join(separator, list_of_strings)Gibt eine Liste von Zeichenketten zurück, die durch ein Trennzeichen verbunden sind.
Beschreibung Verbindet die Liste der Zeichenketten zu einer neuen Zeichenkette, wobei die Trennzeichenkette zwischen den einzelnen Teilzeichenketten eingefügt wird. Gegenteil von split .
Verwandt sprintf
FormatSprachen
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)Ruby , JavaScript , Raku , Rust [ 26 ]
(string-join array_of_stringsseparator)Schema (SRFI 13)
(format nil "~{~a~^separator~}" array_of_strings)Common Lisp
(clojure.string/join separatorlist_of_strings)(apply str (interpose separatorlist_of_strings))Clojure
strings.Join(array_of_strings, separator)Gehen
join(array_of_strings, separator)Seed7
String.concat separatorlist_of_stringsOCaml
String.concatWith separatorlist_of_stringsStandard ML
Data.List.intercalate separatorlist_of_stringsHaskell ( 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"}array_of_strings -join separatorWindows PowerShell
[array_of_strings componentsJoinedByString:separator]Objective-C ( NSString *nur)
table.concat(table_of_strings, separator)Lua
{|StringstreamContents: [ :stream|collectionOfAnything asStringOn: stream delimiter: separator ]collectionOfAnything joinUsing: separatorSmalltalk ( Squeak , Pharo )
array_of_strings.join(separator«, final_separator»)Kobra
sequence_of_strings.joinWithSeparator(separator)Swift 2.x
1↓∊separator,¨list_of_stringsAPL
// Beispiel in C# String.Join ( "-" , { "a" , "b" , "c" }) // "abc"
" Beispiel in Smalltalk " #( 'a' 'b' 'c' ) joinUsing: '-' " 'abc' "
# Beispiel in Perl 5 join ( '-' , ( 'a' , 'b' , 'c' )); # 'abc'
# Beispiel in Raku <ab c> . join ( '-' ); # 'abc'
# Beispiel in Python "-" . join ([ "a" , "b" , "c" ]) # 'abc'
# Beispiel in Ruby [ "a" , "b" , "c" ] .join ( "-" ) # 'abc'
; Beispiel in Scheme ( use-modules ( srfi srfi-13 )) ( string-join ' ( "a" "b" "c" ) "-" ) ; "abc"

letzter Index von

siehe #rfind

links

Definition left(string,n)gibt eine Zeichenkette zurück
Beschreibung Gibt die ersten n Teile einer Zeichenkette zurück. Ist n größer als die Länge der Zeichenkette, geben die meisten Implementierungen die gesamte Zeichenkette zurück (Ausnahmen sind möglich – siehe Codebeispiele). Bei Kodierungen variabler Länge wie UTF-8 , UTF-16 oder Shift-JIS kann es erforderlich sein, die letzten Zeichenkettenpositionen zu entfernen, um ungültige Zeichenketten zu vermeiden.
FormatSprachen
string(string'First..string'First+n - 1)Ada
substr(string, 0, n)AWK (ändert Zeichenketten), 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]Objective-C ( NSString *nur)
(apply str (takenstring))Clojure
string[0 .. n]D [ 27 ]
string:substr(string, start, length)Erlang
(subseq string 0 n)Common Lisp
string[:n]Cobra , Go , Python
left(string,n «,padchar»)Rexx , Erlang
string[0, n]string[0..n - 1]Rubin
string[1, n]Wählen Sie die Basisversion
string[ .. n]Seed7
string.Substring(0,n)VB .NET , C# , Windows PowerShell , F#
leftstr(string, n)Pascal , Object Pascal ( Delphi )
copy (string,1,n)Turbo Pascal
string.substring(0,n)Java , [ 28 ] JavaScript
(string-take stringn)Schema (SRFI 13)
take nstringHaskell
String.extract (string, n, NONE)Standard ML
String.sub string 0 nOCaml [ 29 ]
string.[..n]F#
string.sub(string, 1, n)(string):sub(1, n)Lua
string first: nSmalltalk ( Squeak , Pharo )
string(:n)Fortran
StringTake[string, n]Mathematica [ 30 ]
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)Rust [ 31 ]
# Beispiel in Raku "Hallo!" . substr ( 0 , 6 ); # gibt "Hallo," zurück
/* Beispiele in Rexx */ left ( "abcde" , 3 ) /* gibt "abc" zurück */ left ( "abcde" , 8 ) /* gibt "abcde" zurück */ left ( "abcde" , 8 , "*" ) /* gibt "abcde***" zurück */
Beispiele in Scheme ( use-modules ( srfi srfi-13 )) ( string-take "abcde" , 3 ) ; gibt "abc" zurück ( string-take "abcde" , 8 ) ; Fehler
' Beispiele in Visual Basic Left ( "sandroguidi" , 3 ) ' gibt "san" zurück Left ( "sandroguidi" , 100 ) ' gibt "sandroguidi" zurück

len

siehe #Länge

Länge

Definition length(string)gibt eine ganze Zahl zurück
Beschreibung Gibt die Länge einer Zeichenkette zurück (ohne Nullbyte und sonstige interne Strukturinformationen). Eine leere Zeichenkette hat die Länge 0.
FormatRücksendungenSprachen
string'LengthAda
UPB stringALGOL 68
echo "${#string_param}"Bash
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.LengthAnzahl der UTF-16- CodeeinheitenVB .NET , C# , Windows PowerShell , F#
chars(string)string.charsAnzahl der Grapheme (NFG) Raku
codes(string)string.codesAnzahl der Unicode-Codepunkte Raku
string.size OR string.lengthAnzahl der Bytes [ 32 ]Rubin
strlen(string)Anzahl der Bytes C , PHP
string.length()C++ (STL)
string.lengthCobra , D , JavaScript
string.length()Anzahl der UTF-16- CodeeinheitenJava
(string-length string)Schema
(length string)Common Lisp , ISLISP
(count string)Clojure
String.length stringOCaml
size stringStandard ML
length stringAnzahl der Unicode-Codepunkte Haskell
string.lengthAnzahl der UTF-16- Codeeinheiten Objective-C ( NSString *nur)
string.characters.countAnzahl der Zeichen Swift (2.x)
count(string)Anzahl der Zeichen Swift (1.2)
countElements(string)Anzahl der Zeichen Swift (1.0–1.1)
string.len(string)(string):len()#stringLua
string sizeSmalltalk
LEN(string)LEN_TRIM(string)Fortran
StringLength[string]Mathematica
«FUNCTION» LENGTH(string)oder

«FUNCTION» BYTE-LENGTH(string)

Anzahl der Zeichen bzw. Anzahl der Bytes COBOL
string length stringeine Dezimalzeichenkette, die die Anzahl der Zeichen angibt Tcl
≢ stringAPL
string.len()Anzahl der Bytes Rost [ 33 ]
string.chars().count()Anzahl der Unicode-Codepunkte Rost [ 34 ]
// Beispiele in C# "hello" . Length ; // gibt 5 zurück "" . Length ; // gibt 0 zurück
# Beispiele in Erlang string : len ( "hello" ). % gibt 5 zurück string : len ( "" ). % gibt 0 zurück
# Beispiele in Perl 5 length ( "hello" ); # gibt 5 zurück length ( "" ); # gibt 0 zurück
# Beispiele in Raku "" . chars ; chars "" ; # beide geben 0 zurück "" . codes ; codes "" ; # beide geben 0 zurück
' Beispiele in Visual Basic Len ( "hello" ) ' gibt 5 zurück Len ( "" ) ' gibt 0 zurück
//Beispiele in Objective-C [ @"hello" Länge ] //gibt 5 zurück [ @"" Länge ] //gibt 0 zurück
-- Beispiele in Lua ( "hello" ): len () -- gibt 5 zurück # "" -- gibt 0 zurück

lokalisieren

siehe #Finden

Kleinbuchstaben

Definition lowercase(string)gibt eine Zeichenkette zurück
Beschreibung Gibt die Zeichenkette in Kleinbuchstaben zurück.
FormatSprachen
LCase(string)VB
lcase(string)FreeBASIC
lc(string)Perl , Raku
string.lcRaku
tolower(char)C [ 35 ]
std.string.toLower(string)D
transform(string.begin(), string.end(), result.begin(), ::tolower)[ 36 ]C++ [ 37 ]
lowercase(string)Object Pascal ( Delphi )
strtolower(string)PHP
lower(string)Seed7
${string_param,,}Bash
echo "string" | tr 'A-Z' 'a-z'Unix
string.lower()Python
downcase(string)Wählen Sie die Basisversion
string.downcaseRuby [ 38 ]
strings.ToLower(string)Gehen
(string-downcase string)Scheme (R6RS), Common Lisp
(lower-case string)Clojure
String.lowercase stringOCaml
String.map Char.toLower stringStandard ML
map Char.toLower stringHaskell
string.toLowerCase()Java , JavaScript
to_lower(string)Erlang
string.ToLower()VB .NET , C# , Windows PowerShell , F#
string.lowercaseStringObjective-C ( NSString *nur), Swift (Foundation)
string.lower(string)(string):lower()Lua
string asLowercaseSmalltalk
LOWER(string)SQL
lowercase(string)PL/I [ 9 ]
ToLowerCase[string]Mathematica
«FUNCTION» LOWER-CASE(string)COBOL
string.toLowerKobra
string tolower stringTcl
string.to_lowercase()Rost [ 39 ]
// Beispiel in C# "Wiki bedeutet schnell?" .ToLower (); // "Wiki bedeutet schnell? "
; Beispiel in Scheme ( use-modules ( srfi srfi-13 )) ( string-downcase "Wiki means fast?" ) ; "wiki means fast?"
/* Beispiel in C */ #include <ctype.h> #include <stdio.h>int main ( void ) { char s [] = "Wiki means fast?" ; for ( int i = 0 ; i < sizeof ( s ) - 1 ; ++ i ) { // Zeichen einzeln transformieren s [ i ] = tolower ( s [ i ]); } printf ( string ); // "wiki means fast?" return 0 ; }
# Beispiel in Raku "Wiki bedeutet schnell?" . lc ; # "Wiki bedeutet schnell?"

Mitte

siehe #Teilzeichenkette

Partition

Definition <string>.partition( separator ) gibt die Teilzeichenkette vor dem Trennzeichen zurück; das Trennzeichen; dann die Teilzeichenkette nach dem Trennzeichen.
Beschreibung Teilt die angegebene Zeichenkette anhand des Trennzeichens und gibt die drei Teilzeichenketten zurück, die zusammen die ursprüngliche Zeichenkette ergeben.
FormatSprachenKommentare
string.partition(separator)Python , Ruby (1.9+)
lists:partition(pred, string)Erlang
split /(separator)/, string, 2Perl 5
split separator, string, 2string.split( separator, 2 )RakuDas Trennzeichen muss kein regulärer Ausdruck sein.
# Beispiele 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', "", "")
# Beispiele 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

Definition replace(string, find, replace)gibt eine Zeichenkette zurück
Beschreibung Gibt eine Zeichenkette zurück, in der die gefundenen Vorkommen durch ersetzt wurden .
FormatSprachen
changestr(find, string, replace)Rexx
std.string.replace(string, find, replace)D
Replace(string, find, replace)VB
replace(string, find, replace)Seed7
change(string, find, replace)Wählen Sie die Basisversion
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 [ 40 ]
string.replaceAll(find_regex, replace)[41]Java
string.gsub(find, replace)Rubin
string =~ s/find_regex/replace/g[41]Perl 5
string.subst(find, replace, :g)Raku
string.replace(find, replace, "g") [42]string.replace(/find_regex/g, replace)[41]JavaScript
echo "string" | sed 's/find_regex/replace/g'[41]Unix
${string_param//find_pattern/replace}Bash
string.replace(find, replace)string -replace find_regex, replace[41]Windows PowerShell
Str.global_replace (Str.regexp_string find) replacestringOCaml
[string stringByReplacingOccurrencesOfString:find withString:replace]Objective-C ( NSString *nur)
string.stringByReplacingOccurrencesOfString(find, withString:replace)Swift (Foundation)
string.gsub(string, find, replace)(string):gsub(find, replace)Lua
string copyReplaceAll: find with: replaceSmalltalk ( Squeak , Pharo )
string map {findreplace} stringTcl
StringReplace[string, find -> replace]Mathematica
strings.Replace(string, find, replace, -1)Gehen
INSPECT string REPLACING ALL/LEADING/FIRST find BY replaceCOBOL
find_regex ⎕R replace_regex ⊢ stringAPL
// Beispiele in C# "effffff" . Replace ( "f" , "jump" ); // gibt "ejumpjumpjumpjumpjumpjump" zurück "blah" . Replace ( "z" , "y" ); // gibt "blah" zurück
// Beispiele in Java "effffff" . replace ( "f" , "jump" ); // gibt "ejumpjumpjumpjumpjumpjump" zurück "effffff" . replaceAll ( "f*" , "jump" ); // gibt "ejump" zurück
// Beispiele in Raku "effffff" . subst ( "f" , "jump" , : g ); # gibt "ejumpjumpjumpjumpjumpjump" zurück "blah" . subst ( "z" , "y" , : g ); # gibt "blah" zurück
' Beispiele in Visual Basic Ersetzen ( "effffff" , "f" , "jump" ) ' gibt "ejumpjumpjumpjumpjumpjump" zurück Ersetzen ( "blah" , "z" , "y" ) ' gibt "blah" zurück
# Beispiele in Windows PowerShell "effffff" -replace "f" , "jump" # gibt "ejumpjumpjumpjumpjumpjump" zurück "effffff" -replace "f*" , "jump" # gibt "ejump" zurück

umkehren

Definition reverse(string)
Beschreibung Kehrt die Reihenfolge der Zeichen in der Zeichenkette um.
FormatSprachen
reverse stringPerl 5, Haskell
flip stringstring.flipRaku
lists:reverse(string)Erlang
strrev(string)PHP
string[::-1]Python
(string-reverse string)Schema (SRFI 13)
(reverse string)Common Lisp
string.reverseRuby , D (verändert Zeichenketten)
new StringBuilder(string).reverse().toString()Java
std::reverse(string.begin(), string.end());C++ ( std::stringnur, verändert Zeichenketten)
StrReverse(string)VB
string.Reverse()VB .NET , C#
implode (rev (explode string))Standard ML
string.split("").reverse().join("")JavaScript
string.reverse(string)(string):reverse()Lua
string reverseSmalltalk
StringReverse[string]Mathematica
reverse(string)PL/I
«FUNCTION»REVERSE(string)COBOL
string.toCharArray.toList.reversed.join()Kobra
String(string.characters.reverse())Swift (2.x)
String(reverse(string))Swift (1.2)
string reverse stringTcl
⌽stringAPL
string.chars().rev().collect::<String>()Rost [ 43 ]
echo string | revUnix
" Beispiel in Smalltalk " 'hello' umgekehrt " ergibt 'olleh' "
# Beispiel in Perl 5 umgekehrt "hello" # gibt "olleh" zurück
# Beispiel in Raku "hello" . flip # gibt "olleh" zurück
# Beispiel in Python "hello" [:: - 1 ] # gibt "olleh" zurück
Beispiel in Scheme ( use-modules ( srfi srfi-13 )) ( string-reverse "hello" ) ; gibt "olleh" zurück

rfind

Definition rfind(string,substring)Gibt eine ganze Zahl zurück
Beschreibung Gibt die Position des Beginns des letzten Vorkommens der Teilzeichenkette in der Zeichenkette zurück . Wird die Teilzeichenkette nicht gefunden, geben die meisten dieser Funktionen einen ungültigen Indexwert zurück – -1 bei nullbasierter Indizierung, 0 bei einsbasierter Indizierung – oder einen Wert, der als boolescher Wert FALSE interpretiert wird.
Verwandt Instr
FormatSprachenFalls nicht gefunden
InStrRev(«startpos,» string,substring)VBgibt 0 zurück
instrrev(«startpos,» string,substring)FreeBASICgibt 0 zurück
rindex(string,substring«,startpos»)Perl 5 Rückgabewert −1
rindex(string,substring«,startpos»)string.rindex(substring«,startpos»)RakuGibt Null zurück
strrpos(string,substring«,startpos»)PHPgibt FALSCH zurück
string.rfind(substring«,startpos»)C++ (STL) gibt std::string::npos zurück
std.string.rfind(string, substring)DRückgabewert −1
string.rfind(substring«,startpos«, endpos»»)PythonRückgabewert −1
string.rindex(substring«,startpos«, endpos»»)löst ValueError aus
rpos(string, substring«,startpos»)Seed7gibt 0 zurück
string.rindex(substring«,startpos»)Rubingibt nil zurück
strings.LastIndex(string, substring)GehenRückgabewert −1
string.lastIndexOf(substring«,startpos»)Java , JavaScriptRückgabewert −1
string.LastIndexOf(substring«,startpos«, charcount»»)VB .NET , C# , Windows PowerShell , F#Rückgabewert −1
(search substringstring :from-end t)Common LispRückgabewert: NIL
[string rangeOfString:substring options:NSBackwardsSearch].locationObjective-C ( NSString *nur) gibt NSNotFound zurück
Str.search_backward (Str.regexp_string substring) string (Str.length string - 1)OCamllöst Not_found aus
string.match(string, '.*()'..substring)string:match('.*()'..substring)Luagibt nil zurück
Ada.Strings.Unbounded.Index(Source => string, Pattern => substring, Going => Ada.Strings.Backward)Adagibt 0 zurück
string.lastIndexOf(substring«,startpos«, charcount»»)KobraRückgabewert −1
string lastIndexOfString:substringSmalltalkgibt 0 zurück
string last substring string startposTclRückgabewert −1
(⌽<\⌽substring⍷'string')⍳1APLRückgabewert −1
string.rfind(substring)Rost [ 44 ]Gibt None zurück
Beispiele in Common Lisp ( search "e" "Hello mate" :from-end t ) ; gibt 9 zurück ( search "z" "word" :from-end t ) ; gibt NIL zurück
// Beispiele in C# "Hello mate" . LastIndexOf ( "e" ); // gibt 9 zurück "Hello mate" . LastIndexOf ( "e" , 4 ); // gibt 1 zurück "word" . LastIndexOf ( "z" ); // gibt -1 zurück
# Beispiele in Perl 5 rindex ( "Hello mate" , "e" ); # gibt 9 zurück rindex ( "Hello mate" , "e" , 4 ); # gibt 1 zurück rindex ( "word" , "z" ); # gibt -1 zurück
# Beispiele in Raku "Hello mate" . rindex ( "e" ); # gibt 9 zurück "Hello mate" . rindex ( "e" , 4 ); # gibt 1 zurück "word" . rindex ( 'z' ); # gibt Nil zurück
' Beispiele in Visual Basic InStrRev ( "Hello mate" , "e" ) ' gibt 10 zurück InStrRev ( 5 , "Hello mate" , "e" ) ' gibt 2 zurück InStrRev ( "word" , "z" ) ' gibt 0 zurück

Definition right(string,n)gibt eine Zeichenkette zurück
Beschreibung Gibt den rechten n-ten Teil einer Zeichenkette zurück. Ist n größer als die Länge der Zeichenkette, geben die meisten Implementierungen die gesamte Zeichenkette zurück (Ausnahmen sind möglich – siehe Codebeispiele).
FormatSprachen
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 als die Länge der Zeichenkette sein ) C
string.Substring(string.Length()-n)C#
string[len(string)-n:]Gehen
string.substring(string.length()-n)Java
string.slice(-n)JavaScript [ 45 ]
right(string,n «,padchar»)Rexx , Erlang
substr(string,-n)Perl 5, PHP
substr(string,*-n)string.substr(*-n)Raku
string[-n:]Cobra , Python
${string_param: -n}(Nach dem Doppelpunkt folgt ein Leerzeichen) Bash
string[n]Wählen Sie die Basisversion
(string-take-right stringn)Schema (SRFI 13)
string[-n..-1]Rubin
string[$-n .. $]D [ 46 ]
String.sub string (String.length string - n) nOCaml [ 29 ]
string.sub(string, -n)(string):sub(-n)Lua
string last: nSmalltalk ( Squeak , Pharo )
StringTake[string, -n]Mathematica [ 30 ]
string (1:n)COBOL
¯n↑string.APL
string[n..]string.get(n..)Rust [ 31 ]
// Beispiele in Java; die letzten 4 Zeichen extrahieren String str = "CarDoor" ; str . substring ( str . length () - 4 ); // gibt 'Door' zurück
# Beispiele in Raku "abcde" . substr (*- 3 ); # gibt "cde" zurück "abcde" . substr (*- 8 ); # Fehler "Außerhalb des gültigen Bereichs"
/* Beispiele in Rexx */ right ( "abcde" , 3 ) /* gibt "cde" zurück */ right ( "abcde" , 8 ) /* gibt " abcde" zurück */ right ( "abcde" , 8 , "*" ) /* gibt "***abcde" zurück */
Beispiele in Scheme ( use-modules ( srfi srfi-13 )) ( string-take-right "abcde" , 3 ) ; gibt "cde" zurück ( string-take-right "abcde" , 8 ) ; Fehler
' Beispiele in Visual Basic Right ( "sandroguidi" , 3 ) ' gibt "idi" zurück Right ( "sandroguidi" , 100 ) ' gibt "sandroguidi" zurück

rpartition

Definition <string>.rpartition( separator ) Sucht innerhalb der Zeichenkette von rechts nach links nach dem Trennzeichen und gibt dann die Teilzeichenkette vor dem Trennzeichen, das Trennzeichen selbst und anschließend die Teilzeichenkette nach dem Trennzeichen zurück.
Beschreibung Teilt die gegebene Zeichenkette am rechtesten Trennzeichen auf und gibt die drei Teilzeichenketten zurück, die zusammen die ursprüngliche Zeichenkette ergeben.
FormatSprachen
string.rpartition(separator)Python , Ruby
# Beispiele 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

siehe #Teilzeichenkette

Teilt

Definition <string>.split( separator [, limit ]) teilt eine Zeichenkette anhand des Trennzeichens, optional nur bis zu einer begrenzten Anzahl von Teilzeichenketten.
Beschreibung Teilt die gegebene Zeichenkette anhand des Trennzeichens (selbst eine Zeichenkette) und gibt eine Liste (oder ein Array) der Teilzeichenketten zurück. Wird `limit` angegeben, wird nach dem Lesen von `limit - 1` Trennzeichen der Rest der Zeichenkette zur letzten Teilzeichenkette hinzugefügt, unabhängig davon, ob er Trennzeichen enthält. Die Implementierungen in Scheme und Erlang sind ähnlich, unterscheiden sich aber in einigen Punkten. JavaScript unterscheidet sich auch dadurch, dass es die Zeichenkette abschneidet und nicht den Rest zum letzten Element hinzufügt. Siehe das Beispiel hier . Die Cobra-Implementierung verwendet standardmäßig Leerzeichen. Gegenteil von `join` .
FormatSprachen
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)strings.SplitN(string, separator, limit)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) stringOCaml
std.string.split(string, separator)D
[string componentsSeparatedByString:separator]Objective-C ( NSString *nur)
string.componentsSeparatedByString(separator)Swift (Foundation)
TStringList.Delimiter, TStringList.DelimitedTextObjekt Pascal
StringSplit[string, separator«, limit»]Mathematica
string.split«(sepchars«, limit«, options»»)»Kobra
split string separatorTcl
(separator≠string)⊂stringin APL2 in Dyalog APL 16.0 separator(≠⊆⊢)stringAPL
string.split(separator)

string.split(limit, separator)

Rost [ 47 ]
// Beispiel in C# "abc,defgh,ijk" . Split ( ',' ); // {"abc", "defgh", "ijk"} "abc,defgh;ijk" . Split ( ',' , ';' ); // {"abc", "defgh", "ijk"}
% Beispiel in Erlang- String : tokens ( "abc;defgh;ijk" , ";" ). % ["abc", "defgh", "ijk"]
// Beispiele in Java "abc,defgh,ijk" . split ( "," ); // {"abc", "defgh", "ijk"} "abc,defgh;ijk" . split ( ",|;" ); // {"abc", "defgh", "ijk"}
{ Beispiel 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 ;
# Beispiele 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')
# Beispiele 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

siehe #Format

Streifen

siehe #trimmen

strcmp

siehe #Vergleichen (ganzzahliges Ergebnis)

Teilzeichenkette

Definition substring(string, startpos, endpos)gibt eine Zeichenkette zurücksubstr(string, startpos, numChars)
Beschreibung Gibt einen Teilstring des Strings zwischen der Position startpos und endpos zurück , oder einen Teilstring ab startpos mit der Länge numChars . Der resultierende String wird abgeschnitten, wenn nach dem Startpunkt weniger als numChars Zeichen vorhanden sind. endpos gibt den Index nach dem letzten Zeichen im Teilstring an. Bei Kodierungen variabler Länge wie UTF-8 , UTF-16 oder Shift-JIS kann es erforderlich sein, Stringpositionen am Ende zu entfernen, um ungültige Strings zu vermeiden.
FormatSprachen
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 Zeichenketten), Perl 5, [ 48 ] [ 49 ] PHP [ 48 ] [ 49 ]
substr(string, startpos, numChars)string.substr(startpos, numChars)Raku [ 50 ] [ 51 ]
substr(string, startpos «,numChars, padChar»)PL/I
substr(string, startpos «,numChars, padChar»)Rexx
string[startpos:endpos]Cobra , Python , [ 48 ] [ 52 ] Go
string[startpos, numChars]Wählen Sie die Basisversion
string[startpos, numChars]string[startpos .. endpos-1]string[startpos ... endpos]Ruby [ 48 ] [ 52 ]
string[startpos .. endpos]string[startpos len numChars]Seed7
string.slice(startpos«, endpos»)JavaScript [ 48 ] [ 52 ]
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)Object Pascal ( Delphi )
(substring stringstartposendpos)Schema
(subseq stringstartposendpos)Common Lisp
(subseq stringstartposendpos)ISLISP
String.sub stringstartposnumCharsOCaml
substring (string, startpos, numChars)Standard ML
string:sub_string(string, startpos, endpos)string:substr(string, startpos, numChars)Erlang
strncpy(result, string + startpos, numChars);C
string[startpos .. endpos+1]D
take numChars $ drop startposstringHaskell
[string substringWithRange:NSMakeRange(startpos, numChars)]Objective-C ( NSString *nur)
string.[startpos..endpos]F#
string.sub(string, startpos, endpos)(string):sub(startpos, endpos)Lua [ 48 ] [ 52 ]
string copyFrom: startpos to: endposSmalltalk
string(startpos:endpos)Fortran
SUBSTRING(string FROM startpos «FOR numChars»)SQL
StringTake[string, {startpos, endpos}]Mathematica [ 48 ] [ 52 ]
string (startpos:numChars)COBOL
${string_param:startpos:numChars}Bash
string range string startpos endposTcl
string[startpos..endpos]string.get(startpos..endpos)Rust [ 31 ]
// Beispiele in C# "abc" . Substring ( 1 , 1 ): // gibt "b" zurück "abc" . Substring ( 1 , 2 ); // gibt "bc" zurück "abc" . Substring ( 1 , 6 ); // Fehler
;; Beispiele in Common Lisp ( subseq "abc" 1 2 ) ; gibt "b" zurück ( subseq "abc" 2 ) ; gibt "c" zurück
% Beispiele in Erlang string : substr ( "abc" , 2 , 1 ). % gibt "b" zurück string : substr ( "abc" , 2 ). % gibt "bc" zurück
# Beispiele in Perl 5 substr ( "abc" , 1 , 1 ); # gibt "b" zurück substr ( "abc" , 1 ); # gibt "bc" zurück
# Beispiele in Raku "abc" . substr ( 1 , 1 ); # gibt "b" zurück "abc" . substr ( 1 ); # gibt "bc" zurück
# Beispiele in Python "abc" [ 1 : 2 ] # gibt "b" zurück "abc" [ 1 : 3 ] # gibt "bc" zurück
/* Beispiele in Rexx */ substr ( "abc" , 2 , 1 ) /* gibt "b" zurück */ substr ( "abc" , 2 ) /* gibt "bc" zurück */ substr ( "abc" , 2 , 6 ) /* gibt "bc" zurück */ substr ( "abc" , 2 , 6 , "*" ) /* gibt "bc****" zurück */

Großbuchstaben

Definition uppercase(string)gibt eine Zeichenkette zurück
Beschreibung Gibt die Zeichenkette in Großbuchstaben zurück.
FormatSprachen
UCase(string)VB
ucase(string)FreeBASIC
toupper(string)AWK (ändert Zeichenketten)
uc(string)Perl , Raku
string.ucRaku
toupper(char)C (arbeitet mit einem Zeichen)
for(size_ti=0,len=strlen(string); i< len; i++) string[i] = toupper(string[i]);for(char*c=string;*c!='\0';c++)*c=toupper(*c);C (Zeichenkette / Zeichenarray)
std.string.toUpper(string)D
transform(string.begin(), string.end(), result.begin(), toupper)[36]C++ [ 53 ]
uppercase(string)Object Pascal ( Delphi )
upcase(char)Object Pascal ( Delphi ) (arbeitet mit einem Zeichen)
strtoupper(string)PHP
upper(string)Seed7
${string_param^^}(Eselsbrücke: ^ zeigt nach oben) Bash
echo "string" | tr 'a-z' 'A-Z'Unix
translate(string)UPPER variablesPARSEUPPERVARSrcVarDstVarRexx
string.upper()Python
upcase(string)Wählen Sie die Basisversion
string.upcaseRuby [ 38 ]
strings.ToUpper(string)Gehen
(string-upcase string)Schema , Common Lisp
String.uppercase stringOCaml
String.map Char.toUpper stringStandard ML
map Char.toUpper stringHaskell
string.toUpperCase()Java , JavaScript
string.uppercase()Kotlin [ 54 ]
to_upper(string)Erlang
string.ToUpper()VB .NET , C# , Windows PowerShell , F#
string.uppercaseStringObjective-C ( NSString *nur), Swift (Foundation)
string.upper(string)(string):upper()Lua
string asUppercaseSmalltalk
UPPER(string)SQL
ToUpperCase[string]Mathematica
«FUNCTION»UPPER-CASE(string)COBOL
string.toUpperKobra
string toupper stringTcl
string.to_uppercase()Rost [ 55 ]
// Beispiel in C# "Wiki bedeutet schnell?" .ToUpper (); // "WIKI BEDEUTET SCHNELL? "
# Beispiel in Perl 5 uc ( "Wiki bedeutet schnell?" ); # "WIKI BEDEUTET SCHNELL?"
# Beispiel in Raku uc ( "Wiki bedeutet schnell?" ); # "WIKI BEDEUTET SCHNELL?" "Wiki bedeutet schnell?" . uc ; # "WIKI BEDEUTET SCHNELL?"
/* Beispiel in Rexx */ translate ( "Wiki bedeutet schnell?" ) /* "WIKI BEDEUTET SCHNELL?" *//* Beispiel Nr. 2 */ A = 'Dies ist ein Beispiel.' GROSSES A /* "DIES IST EIN BEISPIEL." *//* Beispiel #3 */ A = 'upper using translate function.' Translate UPPER VAR A Z /* Z="UPPER USING TRANSLATE FUNCTION." */
; Beispiel in Scheme ( use-modules ( srfi srfi-13 )) ( string-upcase "Wiki means fast?" ) ; "WIKI MEANS FAST?"
' Beispiel in Visual Basic UCase ( "Wiki bedeutet schnell?" ) ' "WIKI BEDEUTET SCHNELL?"

trimmen

trimoder stripwird verwendet, um Leerzeichen vom Anfang, vom Ende oder sowohl vom Anfang als auch vom Ende einer Zeichenkette zu entfernen.

AnwendungsbeispielSprachen
String.Trim([chars])C# , VB.NET , Windows PowerShell
string.strip();D
(.trim string)Clojure
sequence [ predicate? ] trimFaktor
(string-trim'(#\Space#\Tab#\Newline)string)Common Lisp
(string-trim string)Schema
string.trim()Java , JavaScript (1.8.1+, Firefox 3.5+), Rust [ 56 ]
Trim(String)Pascal , [ 57 ] 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.stripstring.lstripstring.rstripRubin
string.trimRaku
trim(string)PHP , Raku
[stringstringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceAndNewlineCharacterSet]]Objective-C mit Cocoa
string withBlanksTrimmedstring withoutSpacesstring withoutSeparatorsSmalltalk ( Squeak , Pharo ) Smalltalk
strip(string)SAS
string trim $stringTcl
TRIM(string)TRIM(ADJUSTL(string))Fortran
TRIM(string)SQL
TRIM(string)LTrim(string)RTrim(String)ColdFusion
String.trim stringOCaml 4+

Andere Sprachen

In Sprachen ohne eingebaute Trim-Funktion ist es in der Regel einfach, eine benutzerdefinierte Funktion zu erstellen, die die gleiche Aufgabe erfüllt.

APL

APL kann reguläre Ausdrücke direkt verwenden:

Trim ← '^ +| +$' ⎕R ''

Alternativ dazu ein funktionaler Ansatz, der Boolesche Masken kombiniert, um führende und nachfolgende Leerzeichen herauszufiltern:

Trim ← { ⍵ /⍨ ( ∨ \ ∧ ∘ ⌽∨ \∘ ⌽ ) ' ' ≠ ⍵ }

Oder umgekehrt und die führenden Leerzeichen zweimal entfernen:

Trim ← { ( ∨ \ ' ' ≠ ⍵ ) / ⍵ } ∘ ⌽ ⍣ 2

AWK

In AWK kann man reguläre Ausdrücke zum Kürzen 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++

In C und C++ gibt es keine standardmäßige Funktion zum Entfernen überflüssiger Zeichenketten. Die meisten verfügbaren String-Bibliotheken [ 58 ] für C enthalten jedoch Code, der das Entfernen überflüssiger Zeichenketten implementiert, oder Funktionen, die eine effiziente Implementierung erheblich vereinfachen. In einigen nicht standardkonformen C-Bibliotheken wird diese Funktion auch häufig als `EatWhitespace` bezeichnet .

In C kombinieren Programmierer häufig ltrim und rtrim, um trim zu implementieren:

#include <ctype.h> #include <string.h>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 verfügt über mehrere Trim-Varianten, darunter eine Standardvariante: [ 59 ]

#include <boost/algorithm/string/trim.hpp>trimmed = boost :: algorithm :: trim_copy ( "string" );

Bei der Funktion von Boost, die einfach den Namen `f` trägt, trimwird die Eingabesequenz direkt verändert, und es wird kein Ergebnis zurückgegeben.

Eine weitere Open-Source- C++-Bibliothek namens Qt verfügt über mehrere Trim-Varianten, darunter eine Standardvariante: [ 60 ]

#include <QString>getrimmt = s.getrimmt ( ) ;

Der Linux-Kernel enthält strstrip()seit Version 2.6.18-rc1 auch eine Funktion namens `strip`, die Zeichenketten direkt am Anfang kürzt. Seit Version 2.6.33-rc1 verwendet der Kernel strim()jedoch `strip` anstelle von ` strstrip()strip`, um Fehlalarme zu vermeiden. [ 61 ]

Haskell

Ein Trim-Algorithmus in Haskell :

import Data.Char ( isSpace ) trim :: String -> String trim = f . f where f = reverse . dropWhile isSpace

Die Funktion kann folgendermaßen interpretiert werden: f entfernt das vorangehende Leerzeichen und kehrt die Zeichenkette um. Anschließend wird f erneut auf die eigene Ausgabe angewendet. Die Typangabe (zweite Zeile) ist optional.

J

Der Trim-Algorithmus in J ist eine funktionale Beschreibung:

trim =. #~ [: ( +./\ *. +./\. ) ' ' &~:

Das heißt: Filter ( #~) nach Nicht-Leerzeichen ( ' '&~:) zwischen führenden ( +./\) und *.nachfolgenden ( +./\.) Leerzeichen.

JavaScript

JavaScript 1.8.1 (Firefox 3.5 und höher) und der ECMAScript-5-Standard verfügen über eine integrierte Funktion zum Kürzen von Zeichenketten. In früheren Versionen kann diese Funktion dem Prototyp des String-Objekts wie folgt hinzugefügt werden:

String.prototype.trim = function ( ) { return this.replace ( /^\s+ / g , "" ) .replace ( / \s+$/g , " " ) ; } ;

Perl

Perl 5 verfügt über keine integrierte Trim-Funktion. Diese Funktionalität wird jedoch üblicherweise mithilfe regulärer Ausdrücke erreicht .

Beispiel:

$string =~ s/^\s+// ; # führende Leerzeichen entfernen $string =~ s/\s+$// ; # nachfolgende Leerzeichen entfernen

oder:

$string =~ s/^\s+|\s+$//g ; # Entferne sowohl führende als auch nachfolgende Leerzeichen

Diese Beispiele verändern den Wert der ursprünglichen Variablen $string.

Für Perl ist auch StripLTSpace von String::StripCPAN verfügbar .

Es gibt jedoch zwei Funktionen, die üblicherweise verwendet werden, um Leerzeichen vom Ende von Zeichenketten zu entfernen chomp:chop

  • chopEntfernt das letzte Zeichen aus einer Zeichenkette und gibt diese zurück.
  • chompEntfernt gegebenenfalls das/die nachfolgende(n) Zeilenumbruchzeichen aus einer Zeichenkette. (Was als Zeilenumbruch gilt, hängt von $INPUT_RECORD_SEPARATOR ab).

In Raku , der kommenden Schwestersprache von Perl, gibt es eine trimMethode für Zeichenketten.

Beispiel:

$ string = $ string.trim ; # führende und nachfolgende Leerzeichen entfernen $string .= trim ; # dasselbe

Tcl

Der Tclstring -Befehl verfügt über drei relevante Unterbefehle: trim, trimrightund trimleft. Für jeden dieser Befehle kann ein zusätzliches Argument angegeben werden: eine Zeichenkette, die eine Menge von zu entfernenden Zeichen darstellt – standardmäßig werden Leerzeichen (Leerzeichen, Tabulator, Zeilenumbruch, Wagenrücklauf) verwendet.

Beispiel für das Kürzen von Vokalen:

set string onomatopoeia set trimmed [ string trim $string aeiou ] ; # Ergebnis ist nomatopoeia set r_trimmed [ string trimright $string aeiou ] ; # Ergebnis ist onomatop set l_trimmed [ string trimleft $string aeiou ] ; # Ergebnis ist nomatopoeia

XSLT

XSLT beinhaltet die Funktion , die führende und nachfolgende Leerzeichen entfernt und zudem jede Leerzeichenfolge (einschließlich Zeilenumbrüche) durch ein einzelnes Leerzeichen ersetzt. normalize-space(string)

Beispiel:

<xsl:variable name= 'trimmed' > <xsl:value-of select= 'normalize-space(string)' /> </xsl:variable>

XSLT 2.0 beinhaltet reguläre Ausdrücke und bietet damit einen weiteren Mechanismus zum Kürzen von Zeichenketten.

Eine weitere XSLT-Technik zum Trimmen ist die Verwendung der XPath 2.0- substring()Funktion.

Referenzen

  1. ^ „W3Schools Online Web Tutorials“ . www.w3schools.com . Abgerufen am 14.04.2026 .
  2. ^ a b c d e Der Index kann negativ sein, was dann die Anzahl der Stellen vor dem Ende der Zeichenkette angibt.
  3. ^ In Ruststr::charsiteriert die Methode über Codepunkte und diestd::iter::Iterator::nthMethode auf Iteratoren gibt den nullindizierten n-ten Wert des Iterators zurück, oderNone.
  4. ^ Der Index darf nicht negativ sein. Verwenden Sie *-N , wobei N die Anzahl der Stellen vor dem Ende der Zeichenkette angibt.
  5. ^ In C++ gibt die überladeneoperator<=>Methode eines Strings einstd::strong_orderingObjekt zurück (ansonstenstd::weak_ordering):less,equal(dasselbe wieequivalent), odergreater.
  6. ^ gibt LESS, EQUAL oder GREATER zurück
  7. ^ gibt LT, EQ oder GT zurück.
  8. ^ gibt ein.TRUE.oder zwei.FALSE.. Diese Funktionen basieren auf der ASCII-Sortiersequenz.
  9. ^ a b IBM-Erweiterung.
  10. ^ In Rust gibt dieOrd::cmpMethode auf einem String einOrdering:Less,Equal, oderGreater.
  11. ^ Im ursprünglichen REXX wurde ¬ für das logische Nicht verwendet, ANSI Rexx verwendet \, einige Implementierungen akzeptieren ~ oder ^, und bei Nicht-EBCDIC-Implementierungen gibt es Unterschiede darin, ob ¬ am Codepunkt AA oder AC steht.
  12. ^ Im ursprünglichen PL/I wurde ¬ für logisches Nein verwendet, einige Implementierungen erwarten ^, und bei Nicht-EBCDIC-Implementierungen gibt es Unterschiede hinsichtlich der Frage, ob sich ¬ am Codepunkt AA oder AC befindet.
  13. In Rust werden die Operatoren == und ! = sowie die Methoden , durch das Trait implementiert , und die Operatoren < , > , < = , > = sowie die Methoden , , , werden durch das Trait implementiert.eqnePartialEqltgtlegePartialOrd
  14. ^ Die Operatoren verwenden die standardmäßige Sortierreihenfolge des Compilers.
  15. ^ modifiziert, welches genügend Speicherplatz für das Ergebnis haben mussstring1
  16. ^ In Rust+wird der Operator durch dasAddTrait implementiert.
  17. ^ Siehe diestr::containsMethode.
  18. ^ Siehe diestd::basic_string::containsMethode.
  19. ^ a b startpos ist eine IBM-Erweiterung.
  20. ^ a b Siehe die str::findMethode.
  21. ^startpos ist eine IBM-Erweiterung.
  22. ^ „Scan im Fortran Wiki“ . Fortranwiki.org. 30.04.2009 . Abgerufen am 18.08.2013 .
  23. ^ "Überprüfen Sie dies im Fortran Wiki" . Fortranwiki.org. 03.05.2012 . Abgerufen am 18.08.2013 .
  24. ^formatstring muss zur Kompilierzeit ein festes Literal sein, damit es den richtigen Typ hat.
  25. ^ Siehestd::format, das vom Rust- Prelude importiert wird , damit es unter dem Namen verwendet werden kannformat.
  26. ^ Siehe dieslice::joinMethode.
  27. ^ Wenn n größer als die Länge der Zeichenkette ist, wird im Debug-Modus eine ArrayRangeException ausgelöst, im Release-Modus ist das Verhalten undefiniert .
  28. Wenn n größer als die Länge des Strings ist, löst Java eine IndexOutOfBoundsException aus.
  29. ^ a b falls n größer als die Länge der Zeichenkette ist, löst Invalid_argument aus
  30. ^ a b Falls n größer als die Länge der Zeichenkette ist, gib die Meldung "StringTake::take:" aus.
  31. In Rust werden Strings über Byte-Offsets indiziert. Liegt der Index außerhalb des gültigen Bereichs oder würde er zu ungültigem UTF-8 führen, tritt ein Laufzeitfehler auf . Ein String ( eine Referenz) kann über verschiedene Bereichstypen indiziert werden, darunter ` (" ) `, `(" )` und `(" )`, da diese alle das Trait `String` implementieren, wobei `String` der zu indizierende Typ ist. Die Methode `getIndicator` ist die panikfreie Methode zur Indizierung. Sie gibt `false` zurück, wenn die Indizierung einen Laufzeitfehler auslösen würde.&strRange0..nRangeFromn..RangeTo..nSliceIndexstrstr::getNone
  32. Ruby unterstützt kein Unicode.
  33. ^ Siehe diestr::lenMethode.
  34. In Rust iteriert die Methode über Codepunkte, und dieMethode auf Iteratoren verbraucht den Iterator und gibt die Gesamtzahl der Elemente im Iterator zurück.str::charsstd::iter::Iterator::count
  35. ^ wirkt auf ein einzelnes Zeichen
  36. Die Funktion existiert im Namensraum. Sie müssen die Header-Datei einbinden , um sie zu verwenden . Die Funktionen und befinden sich im globalen Namensraum, der durch die Header-Datei eingebunden wird. Die Namen und sind überladen und können nicht ohne Typumwandlung an übergeben werden, um eine Mehrdeutigkeit der Funktionsüberladung aufzulösen, z. B.transformstd::<algorithm>tolowertoupper<ctype.h>std::tolowerstd::toupperstd::transformstd::transform(string.begin(), string.end(), result.begin(), (int (*)(int))std::tolower);
  37. Nurstd::string das Ergebnis wird in einer Zeichenkette gespeichert,resultdie mindestens so lang ist wie der Ausdruck selbststringund gegebenenfalls nichtstringder Ausdruck selbst
  38. ^ a b Nur ASCII-Zeichen, da Ruby keine Unicode-Unterstützung bietet
  39. ^ Siehe diestr::to_lowercaseMethode.
  40. ^ Siehe diestr::replaceMethode.
  41. ^ a b c d e Die Zeichenkette „find“ in dieser Konstruktion wird als regulärer Ausdruck interpretiert . Bestimmte Zeichen haben in regulären Ausdrücken eine besondere Bedeutung. Um eine Zeichenkette wörtlich zu finden, müssen die Sonderzeichen in Anführungszeichen gesetzt werden.
  42. ^ Der dritte Parameter ist nicht standardkonform.
  43. In Rust iteriert die Methode über Codepunkte, dieMethode auf reversiblen Iteratoren () erzeugt einen umgekehrten Iterator, und dieMethode verbraucht den Iterator und erstellt eine Sammlung (die hier alsmit der Turbofish- Syntax angegeben wird) aus den Elementen des Iterators.str::charsstd::iter::Iterator::revstd::iter::DoubleEndedIteratorstd::iter::Iterator::collectString
  44. ^ Siehe diestr::rfindMethode.
  45. ^ „Annotated ES5“ . Es5.github.com. Archiviert vom Original am 28.01.2013 . Abgerufen am 18.08.2013 .
  46. Wenn n größer als die Länge der Zeichenkette ist, wird im Debug-Modus eine ArrayRangeException ausgelöst, im Release-Modus ist das Verhalten nicht spezifiziert.
  47. ^ Siehe diestr::splitundstr::rsplitMethoden.
  48. ^ a b c d e f gstartpos kann negativ sein, was bedeutet, dass die Zeichenkette an der entsprechenden Anzahl von Stellen vor ihrem Ende begonnen werden soll.
  49. ^ a bnumChars kann negativ sein, was bedeutet, dass die Zeichenkette um diese Anzahl Stellen vor ihrem Ende beendet wird.
  50. ^startpos darf nicht negativ sein. Verwenden Sie * - startpos, um anzugeben, dass die Zeichenkette an der angegebenen Anzahl von Stellen vor ihrem Ende beginnen soll.
  51. ^numChars darf nicht negativ sein. Verwenden Sie * - numChars, um anzugeben, dass die Zeichenkette um diese Anzahl Stellen vor ihrem Ende beendet werden soll.
  52. ^ a b c d eendpos kann negativ sein, was bedeutet, dass die Zeichenkette um diese Anzahl Stellen vor ihrem Ende beendet wird.
  53. Das Ergebnis wird in der Zeichenkette „result“ gespeichert, die mindestens so lang ist wie die Zeichenkette selbstund möglicherweise nicht die Zeichenkette ist.std::string
  54. ^ „Großbuchstaben – Kotlin-Programmiersprache“ . Kotlin . Abgerufen am 9. November 2024 .
  55. ^ In Ruststr::to_uppercasegibt die Methode ein neu allokiertes Objekt zurück,Stringin dem alle Kleinbuchstaben gemäß den Unicode-Regeln in Großbuchstaben umgewandelt wurden.
  56. ^ In Ruststr::trimgibt die Methode eine Referenz auf das Original zurück&str.
  57. ^ „Trim – GNU Pascal priručnik“ . Gnu-pascal.de . Abgerufen am 24.08.2013 .
  58. ^ „Vergleich von Stringbibliotheken“ . And.org . Abgerufen am 24.08.2013 .
  59. ^ „Nutzung – 1.54.0“ . Boost.org. 22.05.2013 . Abgerufen am 24.08.2013 .
  60. ^ [1] Archiviert am 2. August 2009 in der Wayback Machine
  61. ^ dankamongmen. "sprezzos-kernel-packaging/changelog at master · dankamongmen/sprezzos-kernel-packaging · GitHub" . Github.com . Abgerufen am 29.05.2016 .