Sammenligning af programmeringssprog (strengfunktioner) - Comparison of programming languages (string functions)

String funktioner bruges i computer programmeringssprog til at manipulere en snor eller forespørgsel information om en streng (nogle gør begge dele).

De fleste programmeringssprog, der har en streng datatype vil have nogle strengfunktioner selv om der kan være andre lav-niveau måder inden hvert sprog til at håndtere strenge direkte. I objektorienterede sprog implementeres strengfunktioner ofte som egenskaber og metoder til strengobjekter. I funktionelle og listebaserede sprog er en streng repræsenteret som en liste (med tegnkoder), derfor kan alle liste-manipulationsprocedurer betragtes som strengfunktioner. Sådanne sprog kan imidlertid også implementere en delmængde af eksplicitte strengspecifikke funktioner.

Til funktion, der manipulerer strenge, har moderne objektorienterede sprog, som C# og Java, uforanderlige strenge og returnerer en kopi (i nyligt tildelt dynamisk hukommelse), mens andre, ligesom C, manipulerer den originale streng, medmindre programmereren kopierer data til en ny streng. Se f.eks. Sammenkædning nedenfor.

Det mest grundlæggende eksempel på en strengfunktion er length(string)funktionen. Denne funktion returnerer længden af ​​en streng bogstaveligt .

f.eks length("hello world")ville returnere 11.

Andre sprog kan have strengfunktioner med lignende eller nøjagtig samme syntaks eller parametre eller resultater. For eksempel er længdefunktionen på mange sprog normalt repræsenteret som len (streng) . Nedenstående liste over fælles funktioner har til formål at hjælpe med at begrænse denne forvirring.

Almindelige strengfunktioner (flersprogsreference)

Strengfunktioner, der er fælles for mange sprog, er angivet nedenfor, herunder de forskellige navne, der bruges. Nedenstående liste over fælles funktioner har til formål at hjælpe programmører med at finde den tilsvarende funktion på et sprog. Bemærk, streng sammenkædning og regulære udtryk håndteres på separate sider. Erklæringer i lompe («…») er valgfrie.

CharAt

Definition charAt(string,integer) returnerer karakter.
Beskrivelse Returnerer tegn ved indeks i strengen.
Tilsvarende Se delstreng med længde 1 tegn.
Format Sprog Basisindeks
string[i] ALGOL 68 , APL , Julia , Pascal , Object Pascal ( Delphi ), Frø7 1
string[i] C , C ++ , C# , Cobra , D , FreeBASIC , Go , Python , PHP , Ruby , Windows PowerShell , JavaScript , APL 0
string{i} PHP (udfaset i 5.3) 0
string(i) Ada ≥1
Mid(string,i,1) VB 1
MID$(string,i,1) GRUNDLÆGGENDE 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) Rust 0
string[i,1] Vælg Basic 1
String.sub (string, i) Standard ML 0
string !! i Haskell 0
(string-ref string i) Ordning 0
(char string i) Almindelig Lisp 0
(elt string i) ISLISP 0
(get string i) Clojure 0
substr(string, i, 1) Perl 5 0
substr(string, i, 1)
string.substr(i, 1)
Raku 0
substr(string, i, 1) PL/I 1
string.at(i) C ++ (STL) (uden grænsekontrol) 0
lists:nth(i, string) Erlang 1
[string characterAtIndex:i] Objective-C ( NSString *kun) 0
string.sub(string, i, i)
(string):sub(i, i)
Lua 1
string at: i Smalltalk (uden grænsekontrol) 1
string index string i Tcl 0
StringTake[string, {i}] Mathematica , Wolfram Language 1
string@i Eiffel 1
string (i:1) COBOL 1
istring APL 0 eller 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 <stdio.h>             // 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 <iostream>            // for "cout"
#include <string.h>            // 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')

Sammenlign (heltalsresultat)

Definition compare(string1,string2) returnerer helt tal.
Beskrivelse Sammenligner to strenge med hinanden. Hvis de er ækvivalente, returneres et nul. Ellers vil de fleste af disse rutiner returnere et positivt eller negativt resultat svarende til, om streng 1 er leksikografisk større end eller mindre end henholdsvis streng 2 . Undtagelserne er Scheme- og Rexx -rutinerne, der returnerer indekset for det første mismatch, og Smalltalk, der svarer på en sammenligningskode, der fortæller, hvordan modtageren sorterer i forhold til strengparameteren.
Format Sprog
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 ( Squeak , Pharo )
string1 <=> string2 Rubin , C ++ (STL, C ++ 20 )
string1.compare(string2) C ++ (STL), Swift (Foundation)
compare(string1, string2) Rexx , Frø 7
CompareStr(string1, string2) Pascal , Object Pascal ( Delphi )
string1.compareTo(string2) Cobra , Java
string1.CompareTo(string2) VB .NET , C# , F#
(compare string1 string2) Clojure
(string= string1 string2) Almindelig Lisp
(string-compare string1 string2 p< p= p>) Ordning (SRFI 13)
(string= string1 string2) ISLISP
compare string1 string2 OCaml
String.compare (string1, string2) Standard ML
compare string1 string2 Haskell
[string]::Compare(string1, string2) Windows PowerShell
[string1 compare:string2] Objective-C ( NSString *kun)
LLT(string1,string2)
LLE(string1,string2)
LGT(string1,string2)
LGE(string1,string2)
Fortran
string1.localeCompare(string2) JavaScript
bytes.Compare([]byte(string1), []byte(string2))
string compare ?-nocase? ?-length int? string1 string2 Tcl
compare(string1,string2,count) PL/I
string1.cmp(string2) Rust
# 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)

Sammenlign (relationel operatørbaseret, boolsk resultat)

Definition string1 OP string2ELLER returnerer boolsk. (compare string1 string2)
Beskrivelse Leksikografisk sammenligner to strenge ved hjælp af en relationel operator eller funktion. Boolsk resultat returneret.
Format Sprog
string1 OP string2, hvor OPkan være hvilken som helst af =, <>, <, >, <=og>= Pascal , Object Pascal ( Delphi ), OCaml , Seed7 , Standard ML , BASIC , VB , VB .NET , F#
string1 OP string2, hvor OPkan være hvilken som helst af =, /=, ≠, <, >, <=, ≤og ; Også: EQ, NE, LT, LE, GEogGT ALGOL 68
(stringOP? string1 string2), hvor OPkan være en af =, -ci=, <, -ci<, >, -ci>, <=, -ci<=, >=og -ci>=(operatører, der starter med ' -ci', er ufølsomme for store og små bogstaver) Ordning
(stringOP string1 string2), hvor OPkan være en af =, -ci=, <>, -ci<>, <, -ci<, >, -ci>, <=, -ci<=, >=og -ci>=(operatører, der starter med ' -ci', er ufølsomme for store og små bogstaver) Ordning (SRFI 13)
(stringOP string1 string2), hvor OPkan være en af =, -equal, /=, -not-equal, <, -lessp, >, -greaterp, <=, -not-greaterp, >=og -not-lessp(de verbale operatorer er ufølsomme for store og små bogstaver) Almindelig Lisp
(stringOP string1 string2), hvor OPkan være hvilken som helst af =, /=, <, >, <=,og>= ISLISP
string1 OP string2, hvor OPkan være hvilken som helst af =, \=, <, >, <=og>= Rexx
string1 OP string2, hvor OPkan være hvilken som helst af =, ¬=, <, >, <=, >=, ¬<og¬> PL/I
string1 OP string2, hvor OPkan være hvilken som helst af =, /=, <, >, <=og>= Ada
string1 OP string2, hvor OPkan være hvilken som helst af ==, /=, <, >, =<og>= Erlang
string1 OP string2, hvor OPkan være hvilken som helst af ==, /=, <, >, <=og>= Haskell
string1 OP string2, hvor OPkan være hvilken som helst af ogeq, ne, lt, gt, lege Perl , Raku
string1 OP string2, hvor OPkan være hvilken som helst af ==, !=, <, >, <=og>= C ++ (STL), C# , D , Go , JavaScript , Python , PHP , Ruby , Rust , Swift
string1 OP string2, hvor OPkan være en af -eq, -ceq, -ne, -cne, -lt, -clt, -gt, -cgt, -le, -cle, -ge,og -cge (operatører, der starter med ' c' er store og små bogstaver) Windows PowerShell
string1 OP string2, hvor OPkan være hvilken som helst af ==, ~=, <, >, <=og>= Lua
string1 OP string2, hvor OPkan være hvilken som helst af =, ~=, <, >, <=og>= Småsnak
string1 OP string2, hvor OPkan være hvilken som helst af ==, /=, <, >, <=og >=; Also: .EQ., .NE., .LT., .LE., .GT.og.GE. Fortran .
string1 OP string2hvor OPkan være en af =, <>, <, >, <=, >=såvel som formulerede ækvivalenter COBOL
string1 OP string2hvor OPkan være hvilken som helst af ==, <>, <, >, <=og>= Cobra
string1 OP string2er tilgængelig i syntaksen, men betyder sammenligning af pointerne, der peger på strengene, ikke af strengens indhold. Brug funktionen Sammenlign (heltalsresultat). C , Java
string1.METHOD(string2)hvor METHODer nogen af eq, ne, gt, lt, ge,le Rust
% 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

Sammenkædning

Definition concatenate(string1,string2) returnerer streng.
Beskrivelse Sammenkæder (forbinder) to strenge med hinanden og returnerer den kombinerede streng. Bemærk, at nogle sprog som C har mutable strenge, så den anden streng bliver virkelig vedhæftet den første streng, og den muterede streng returneres.
Format Sprog
string1 & string2 Ada , FreeBASIC , Seed7 , BASIC , VB , VB .NET , COBOL (kun mellem bogstaver)
strcat(string1, string2) C , C ++ ( kun) char *
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 , F# , Swift , Turing , VB
string1 ~ string2 D , Raku
(string-append string1 string2) Skema , ISLISP
(concatenate 'string string1 string2) Almindelig 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] Objective-C ( NSString *kun)
string1 .. string2 Lua
string1 , string2 Smalltalk , APL
string1 string2 SNOBOL
string1string2 Bash skal
string1 <> string2 Mathematica
konkat streng 1 streng 2 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"

Indeholder

Definition contains(string,substring) returnerer boolsk
Beskrivelse Returnerer, om strengen indeholder delstreng som en delstreng. Dette svarer til at bruge Find og derefter opdage, at det ikke resulterer i fejltilstanden i den tredje kolonne i sektionen Find. Nogle sprog har imidlertid en enklere måde at udtrykke denne test på.
Relaterede Find
Format Sprog
string_in_string(string, loc int, substring) ALGOL 68
ContainsStr(string, substring) Objekt Pascal ( Delphi )
strstr(string, substring) != NULL C , C ++ ( char *kun)
string.Contains(substring) C# , VB .NET , Windows PowerShell , F#
string.contains(substring) Cobra , Java (1.5+), Raku , Rust , C ++ ( C ++ 23 )
string.indexOf(substring) >= 0 JavaScript
strpos(string, substring) !== false PHP
str_contains(string, substring) PHP (8+)
pos(string, substring) <> 0 Frø 7
substring in string Cobra , 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 ( Squeak , Pharo , Smalltalk/X )
String.isSubstring substring string Standard ML
(search substring string) Almindelig Lisp
(not (null (string-index substring string))) ISLISP
(substring? substring string) Clojure
! StringFreeQ[string, substring] Mathematica
index(string, substring, startpos)>0 Fortran, PL/I
index(string, substring, occurrence)>0 Vælg Basic
strings.Contains(string, substring)
string.find(substring) != string::npos C ++
[string containsString:substring] Objective-C ( NSString *kun, iOS 8+/OS X 10.10+)
string.rangeOfString(substring) != nil Swift (Foundation)
∨/substringstring 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 "

Lighed

Test, hvis to strenge er ens. Se også #Sammenlign og #Sammenlign . Bemærk, at udførelse af lighedstjek via et generisk sammenligning med heltalsresultat ikke kun er forvirrende for programmøren, men ofte er en betydeligt dyrere operation; Dette gælder især, når man bruger " C-strenge ".

Format Sprog
string1 == string2 Python , C ++ (STL), C# , Cobra , Go , JavaScript (lighed), PHP (lighed), Ruby , Rust , Erlang , Haskell , Lua , D , Mathematica , Swift
string1 === string2 JavaScript , PHP
string1 == string2 or
string1 .EQ. string2
Fortran
strcmp(string1, string2) == 0 C
(string=? string1 string2) Ordning
(string= string1 string2) Fælles 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
[ string1 = string2 ]
Bourne Shell
string1 eq string2 Perl , Raku
string1.equals(string2) Cobra , Java
string1.Equals(string2) C#
string1 -eq string2, or
[string]::Equals(string1, string2)
Windows PowerShell
[string1 isEqualToString:string2], or
[string1 isEqual:string2]
Objective-C ( NSString *kun)
string1string2 APL
string1.eq(string2) Rust
// 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


Find

Definition find(string,substring) returnerer helt tal
Beskrivelse Returnerer positionen for starten af ​​den første forekomst af delstreng i streng . Hvis delstrengen ikke findes, returnerer de fleste af disse rutiner en ugyldig indeksværdi--1 hvor indekser er 0-baserede, 0 hvor de er 1-baserede-eller en værdi, der skal tolkes som boolsk FALSK.
Relaterede instrrev
Format Sprog Hvis ikke fundet
string in string(substring, pos, string[startpos:]) ALGOL 68 returnerer BOOL: TRUE eller FALSE, og position i REF INT pos.
InStr(«startposstring,substring) VB (positioner starter ved 1) returnerer 0
INSTR$(string,substring) BASIC (positioner starter ved 1) returnerer 0
index(string,substring) AWK returnerer 0
index(string,substring«,startpos») Perl 5 returnerer -1
index(string,substring«,startpos»)
string.index(substring,«,startpos»)
Raku vender tilbage Nil
instr(«startposstring,substring) FreeBASIC returnerer 0
strpos(string,substring«,startpos») PHP returnerer FALSK
locate(string, substring) Ingres returnerer strenglængde + 1
strstr(string, substring) C , C ++ ( kun, vender markøren tilbage til første tegn) char * returnerer NULL
std.string.indexOf(string, substring) D returnerer -1
pos(string, substring«, startpos») Frø 7 returnerer 0
strings.Index(string, substring) returnerer -1
pos(substring, string) Pascal , Object Pascal ( Delphi ) returnerer 0
pos(substring, string«,startpos») Rexx returnerer 0
string.find(substring«,startpos») C ++ (STL) returnerer std :: string :: npos
string.find(substring«,startpos«,endpos»») Python returnerer -1
string.index(substring«,startpos«,endpos»») hæver ValueError
string.index(substring«,startpos») Rubin returnerer nul
string.indexOf(substring«,startpos») Java , JavaScript returnerer -1
string.IndexOf(substring«,startpos«, charcount»») VB .NET , C# , Windows PowerShell , F# returnerer -1
string:str(string, substring) Erlang returnerer 0
(string-contains string substring) Ordning (SRFI 13) returnerer #f
(search substring string) Almindelig Lisp returnerer NIL
(string-index substring string) ISLISP vender tilbage nil
List.findIndex (List.isPrefixOf substring) (List.tails string) Haskell (returnerer bare indeks ) returnerer intet
Str.search_forward (Str.regexp_string substring) string 0 OCaml hæver Not_found
Substring.size (#1 (Substring.position substring (Substring.full string))) Standard ML returnerer strenglængde
[string rangeOfString:substring].location Objective-C ( NSString *kun) returnerer NSNotFound
string.find(string, substring)
(string):find(substring)
Lua returnerer nul
string indexOfSubCollection: substring startingAt: startpos ifAbsent: aBlock
string findString: substring startingAt: startpos
Smalltalk ( Squeak , Pharo ) evaluere aBlock, som er en bloklukning (eller en hvilken som helst objektforståelsesværdi)
returnerer 0
startpos = INDEX(string, substring «,back» «, kind») Fortran returnerer 0, hvis delstreng ikke er i streng; returnerer LEN (streng) +1, hvis delstrengen er tom
POSITION(substring IN string) SQL returnerer 0 (positioner starter ved 1)
index(string, substring, startpos ) PL/I returnerer 0 (positioner starter ved 1)
index(string, substring, occurrence ) Vælg Basic returnerer 0, hvis forekomsten af ​​delstreng ikke er i en streng; (positioner starter ved 1)
string.indexOf(substring«,startpos«, charcount»») Cobra returnerer -1
string first substring string startpos Tcl returnerer -1
(substringstring)⍳1 APL returnerer 1 + den sidste position i strengen
string.find(substring) Rust vender tilbage 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"


Find karakter

Definition find_character(string,char) returnerer helt tal
Beskrivelse Returnerer placeringen af ​​starten på den første forekomst af tegntegnet i streng . Hvis tegnet ikke findes, returnerer de fleste af disse rutiner en ugyldig indeksværdi--1 hvor indekser er 0-baserede, 0 hvor de er 1-baserede-eller en værdi, der skal tolkes som boolsk FALSK. Dette kan opnås som et specielt tilfælde af #Find , med en streng på et tegn; men det kan være enklere eller mere effektivt på mange sprog at finde et enkelt tegn. På mange sprog er tegn og strenge også forskellige typer, så det er praktisk at have en sådan funktion.
Relaterede Find
Format Sprog Hvis ikke fundet
char in string(char, pos, string[startpos:]) ALGOL 68 returnerer BOOL: TRUE eller FALSE, og position i REF INT pos.
instr(string, any char«,startpos») (forkælelse, kan indeholde flere dem en forkælelse, i hvilket tilfælde placeringen af ​​den første optræden af ​​nogen af ​​dem returneres.) FreeBASIC returnerer 0
strchr(string,char) C , C ++ ( kun, vender markøren tilbage til karakter) char * returnerer NULL
std.string.find(string, dchar) D returnerer -1
string.find(char«,startpos») C ++ (STL) returnerer std :: string :: npos
pos(string, char«, startpos») Frø 7 returnerer 0
strings.IndexRune(string,char) returnerer -1
string.indexOf(char«,startpos») Java , JavaScript returnerer -1
string.IndexOf(char«,startpos«, charcount»») VB .NET , C# , Windows PowerShell , F# returnerer -1
(position char string) Almindelig Lisp returnerer NIL
(char-index char string) ISLISP vender tilbage nil
List.elemIndex char string Haskell (returnerer ) Just index vender tilbage Nothing
String.index string char OCaml hæver Not_found
position = SCAN (string, set «, back» «, kind») or
position = VERIFY (string, set «, back» «, kind»)
Fortran returnerer nul
string indexOf: char ifAbsent: aBlock
string indexOf: char
string includes: char
Småsnak evaluere aBlockhvilken der er en BlockClosure(eller en objektforståelsesværdi)
returnerer 0
returnerer trueellerfalse
index(string, char, startpos ) PL/I returnerer 0 (positioner starter ved 1)
string.index(?char) Rubin returnerer nul
strpos(string,char,startpos) PHP vender tilbage false
string.indexOf(char«,startpos«, charcount»») Cobra returnerer -1
stringchar APL returnerer 1 + den sidste position i strengen
string.find(substring) Rust vender tilbage 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 Givet et sæt tegn, returnerer SCAN placeringen af ​​det første tegn, der er fundet, mens VERIFY returnerer placeringen af ​​det første tegn, der ikke tilhører sættet.

Format

Definition format(formatstring, items) returnerer streng
Beskrivelse Returnerer den formaterede strengrepræsentation af et eller flere elementer.
Format Sprog Formater strengsyntaks
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) Objekt Pascal ( Delphi )
fmt.Sprintf(formatstring, items) C
printf -v outputstring formatstring items Bash skal C
formatstring % (items) Python , Ruby C
formatstring.format(items) Python .NET
fformatstring Python 3
Printf.sprintf formatstring items OCaml , F# C
Text.Printf.printf formatstring items Haskell (GHC) C
formatstring printf: items Småsnak C
String.format(formatstring, items) Java C
String.Format(formatstring, items) VB .NET , C# , F# .NET
(format formatstring items) Ordning (SRFI 28) Lisp
(format nil formatstring items) Almindelig Lisp Lisp
(format formatstring items) Clojure Lisp
formatstring -f items Windows PowerShell .NET
[NSString stringWithFormat:formatstring, items] Objective-C ( NSString *kun) C
String(format:formatstring, items) Swift (Foundation) C
string.format(formatstring, items)
(formatstring):format(items)
Lua C
WRITE (outputstring, formatstring) items Fortran Fortran
put string(string) edit(items)(format) PL/I PL/I (ligner Fortran)
String.format(formatstring, items) Cobra .NET
format formatstring items Tcl C
formatnumbersitems eller formatstring ⎕FMT items APL APL
format!(formatstring, items) Rust 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" */

Ulighed

Tester hvis to strenge ikke er ens. Se også #Lighed .

Format Sprog
string1 ne string2, or string1 NE string2 ALGOL 68 -bemærk: operatoren " ne " er bogstaveligt talt med fed skrift.
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 (forældet)
string1 # string2 BASIC (nogle implementeringer)
string1 ne string2 Perl , Raku
(string<> string1 string2) Ordning (SRFI 13)
(string/= string1 string2) Almindelig Lisp
(string/= string1 string2) ISLISP
(not= string1 string2) Clojure
string1 != string2 C ++ (STL), C# , Go , JavaScript (ligner ikke), PHP (ikke ens), Python , Ruby , Rust , Swift , D , Mathematica
string1 !== string2 JavaScript , PHP
string1 \= string2 Rexx
string1 ¬= string2 PL/I
test string1 != string2, or
[ string1 != string2 ]
Bourne Shell
string1 -ne string2, or
-not [string]::Equals(string1, string2)
Windows PowerShell
string1 ~= string2 Lua , Smalltalk
string1string2 APL
string1.ne(string2) Rust
// 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

indeks

se #Find

indeks af

se #Find

instr

se #Find

instrrev

se #rfind

tilslutte

Definition join(separator, list_of_strings) returnerer en liste over strenge, der er forbundet med en separator
Beskrivelse Slutter listen over strenge til en ny streng med separatorstrengen mellem hver af underlagene. Modsat splittelse .
Relaterede sprintf
Format Sprog
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
(string-join array_of_strings separator) Ordning (SRFI 13)
(format nil "~{~a~^separator~}" array_of_strings) Almindelig Lisp
(clojure.string/join separator list_of_strings)
(apply str (interpose separator list_of_strings))
Clojure
strings.Join(array_of_strings, separator)
join(array_of_strings, separator) Frø 7
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
array_of_strings -join separator
Windows PowerShell
[array_of_strings componentsJoinedByString:separator] Objective-C ( NSString *kun)
table.concat(table_of_strings, separator) Lua
{|String streamContents: [ :stream | collectionOfAnything asStringOn: stream delimiter: separator ]
collectionOfAnything joinUsing: separator
Smalltalk ( Squeak , Pharo )
array_of_strings.join(separator«, final_separator») Cobra
sequence_of_strings.joinWithSeparator(separator) Swift 2.x
1↓∊separatorlist_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
<a b c>.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"

sidste indeks

se #rfind

venstre

Definition left(string,n) returnerer streng
Beskrivelse Returnerer den venstre n del af en streng. Hvis n er større end strengens længde, returnerer de fleste implementeringer hele strengen (der findes undtagelser - se kodeeksempler). Bemærk, at for kodninger med variabel længde, f.eks. UTF-8 , UTF-16 eller Shift-JIS , kan det være nødvendigt at fjerne strengpositioner for enden for at undgå ugyldige strenge.
Format Sprog
string (string'First .. string'First + n - 1) Ada
substr(string, 0, n) AWK (ændrer streng), Perl , PHP , Raku
LEFT$(string,n) BASIC , VB
left(string,n) VB , FreeBASIC , Ingres , Pick Basic
strncpy(string2, string, n) C standardbibliotek
string.substr(0,n) C ++ (STL), Raku
[string substringToIndex:n] Objective-C ( NSString *kun)
(apply str (take n string)) Clojure
string[0 .. n] D
string:substr(string, start, length) Erlang
(subseq string 0 n) Almindelig Lisp
string[:n] Cobra , Go , Python
left(string,n «,padchar») Rexx , Erlang
string[0, n]
string[0..n - 1]
Rubin
string[1, n] Vælg Basic
string[ .. n] Frø 7
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 , JavaScript
(string-take string n) Ordning (SRFI 13)
take n string Haskell
String.extract (string, n, NONE) Standard ML
String.sub string 0 n OCaml
string.[..n] F#
string.sub(string, 1, n)
(string):sub(1, n)
Lua
string first: n Smalltalk ( Squeak , Pharo )
string(:n) Fortran
StringTake[string, n] Mathematica
string («FUNCTION» LENGTH(string) - n:n) COBOL
string.substring(0, n) Cobra
nstring. APL
string[0..n]
string[..n]
string.get(0..n)
string.get(..n)
Rust
# 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

se #længde


længde

Definition length(string) returnerer et helt tal
Beskrivelse Returnerer længden af ​​en streng (tæller ikke nul -terminatoren eller andre af strengens interne strukturoplysninger). En tom streng returnerer en længde på 0.
Format Vender tilbage Sprog
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 Antal UTF-16 kodeenheder VB .NET , C# , Windows PowerShell , F#
chars(string)
string.chars
Antal grafemer (NFG) Raku
codes(string)
string.codes
Antal Unicode -kodepunkter Raku
string.size OR string.length Antal bytes Rubin
strlen(string) Antal bytes C , PHP
string.length() C ++ (STL)
string.length Cobra , D , JavaScript
string.length() Antal UTF-16 kodeenheder Java
(string-length string) Ordning
(length string) Fælles Lisp , ISLISP
(count string) Clojure
String.length string OCaml
size string Standard ML
length string Antal Unicode -kodepunkter Haskell
string.length Antal UTF-16 kodeenheder Objective-C ( NSString *kun)
string.characters.count Antal tegn Swift (2.x)
count(string) Antal tegn Swift (1,2)
countElements(string) Antal tegn Swift (1,0–1,1)
string.len(string)
(string):len()
#string
Lua
string size Småsnak
LEN(string), or LEN_TRIM(string) Fortran
StringLength[string] Mathematica
«FUNCTION» LENGTH(string) eller

«FUNCTION» BYTE-LENGTH(string)

henholdsvis antal tegn og antal bytes COBOL
string length string en decimalstreng, der angiver antallet af tegn Tcl
string APL
string.len() Antal bytes Rust
string.chars().count() Antal Unicode -kodepunkter Rust
// 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

finde

se #Find


Små bogstaver

Definition lowercase(string) returnerer streng
Beskrivelse Returnerer strengen med små bogstaver.
Format Sprog
LCase(string) VB
lcase(string) FreeBASIC
lc(string) Perl , Raku
string.lc Raku
tolower(char) C
std.string.toLower(string) D
transform(string.begin(), string.end(), result.begin(), ::tolower) C ++
lowercase(string) Objekt Pascal ( Delphi )
strtolower(string) PHP
lower(string) Frø 7
echo "string" | tr 'A-Z' 'a-z' Unix
string.lower() Python
downcase(string) Vælg Basic
string.downcase Rubin
strings.ToLower(string)
(string-downcase string) Skema (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 Objective-C ( NSString *kun), Swift (Foundation)
string.lower(string)
(string):lower()
Lua
string asLowercase Småsnak
LOWER(string) SQL
lowercase(string) PL/I
ToLowerCase[string] Mathematica
«FUNCTION» LOWER-CASE(string) COBOL
string.toLower Cobra
string tolower string Tcl
string.to_lowercase() Rust
// 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 <ctype.h>
#include <stdio.h>
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?"


midt

se #substring


skillevæg

Definition <string> .partition ( separator ) returnerer understrengen før separatoren; separatoren; derefter delstrengen efter separatoren.
Beskrivelse Opdeler den givne streng med separatoren og returnerer de tre underlag, der tilsammen udgør originalen.
Format Sprog Kommentarer
string.partition(separator) Python , Ruby (1.9+)
lists:partition(pred, string) Erlang
split /(separator)/, string, 2 Perl 5
split separator, string, 2
string.split( separator, 2 )
Raku Separator behøver ikke at være et regulært udtryk
# 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');


erstatte

Definition replace(string, find, replace) returnerer streng
Beskrivelse Returnerer en streng med find forekomster ændret til at erstatte .
Format Sprog
changestr(find, string, replace) Rexx
std.string.replace(string, find, replace) D
Replace(string, find, replace) VB
replace(string, find, replace) Frø 7
change(string, find, replace) Vælg 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
string.replaceAll(find_regex, replace) Java
string.gsub(find, replace) Rubin
string =~ s/find_regex/replace/g Perl 5
string.subst(find, replace, :g) Raku
string.replace(find, replace, "g") or
string.replace(/find_regex/g, replace)
JavaScript
echo "string" | sed 's/find_regex/replace/g' Unix
string.replace(find, replace), or
string -replace find_regex, replace
Windows PowerShell
Str.global_replace (Str.regexp_string find) replace string OCaml
[string stringByReplacingOccurrencesOfString:find withString:replace] Objective-C ( NSString *kun)
string.stringByReplacingOccurrencesOfString(find, withString:replace) Swift (Foundation)
string.gsub(string, find, replace)
(string):gsub(find, replace)
Lua
string copyReplaceAll: find with: replace Smalltalk ( Squeak , Pharo )
string map {find replace} string Tcl
StringReplace[string, find -> replace] Mathematica
strings.Replace(string, find, replace, -1)
INSPECT string REPLACING ALL/LEADING/FIRST find BY replace COBOL
find_regex ⎕R replace_regexstring 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"

baglæns

Definition reverse(string)
Beskrivelse Vender rækkefølgen af ​​tegnene i strengen.
Format Sprog
reverse string Perl 5 , Haskell
flip string
string.flip
Raku
lists:reverse(string) Erlang
strrev(string) PHP
string[::-1] Python
(string-reverse string) Ordning (SRFI 13)
(reverse string) Almindelig Lisp
string.reverse Ruby , D (ændrer streng)
new StringBuilder(string).reverse().toString() Java
std::reverse(string.begin(), string.end()); C ++ ( std::stringkun, ændrer streng)
StrReverse(string) VB
string.Reverse().ToString() VB .NET , C#
implode (rev (explode string)) Standard ML
string.split("").reverse().join("") JavaScript
string.reverse(string)
(string):reverse()
Lua
string reverse Småsnak
StringReverse[string] Mathematica
reverse(string) PL/I
«FUNCTION» REVERSE(string) COBOL
string.toCharArray.toList.reversed.join() Cobra
String(string.characters.reverse()) Swift (2.x)
String(reverse(string)) Swift (1,2)
string reverse string Tcl
string APL
string.chars().rev().collect::<String>() Rust
" 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

Definition rfind(string,substring) returnerer helt tal
Beskrivelse Returnerer positionen for starten af ​​den sidste forekomst af delstreng i streng . Hvis delstrengen ikke findes, returnerer de fleste af disse rutiner en ugyldig indeksværdi--1 hvor indekser er 0-baserede, 0 hvor de er 1-baserede-eller en værdi, der skal tolkes som boolsk FALSK.
Relaterede instr
Format Sprog Hvis ikke fundet
InStrRev(«startposstring,substring) VB returnerer 0
instrrev(«startposstring,substring) FreeBASIC returnerer 0
rindex(string,substring«,startpos») Perl 5 returnerer -1
rindex(string,substring«,startpos»)
string.rindex(substring«,startpos»)
Raku vender tilbage Nil
strrpos(string,substring«,startpos») PHP returnerer FALSK
string.rfind(substring«,startpos») C ++ (STL) returnerer std :: string :: npos
std.string.rfind(string, substring) D returnerer -1
string.rfind(substring«,startpos«, endpos»») Python returnerer -1
string.rindex(substring«,startpos«, endpos»») hæver ValueError
rpos(string, substring«,startpos») Frø 7 returnerer 0
string.rindex(substring«,startpos») Rubin returnerer nul
strings.LastIndex(string, substring) returnerer -1
string.lastIndexOf(substring«,startpos») Java , JavaScript returnerer -1
string.LastIndexOf(substring«,startpos«, charcount»») VB .NET , C# , Windows PowerShell , F# returnerer -1
(search substring string :from-end t) Almindelig Lisp returnerer NIL
[string rangeOfString:substring options:NSBackwardsSearch].location Objective-C ( NSString *kun) returnerer NSNotFound
Str.search_backward (Str.regexp_string substring) string (Str.length string - 1) OCaml hæver Not_found
string.match(string, '.*()'..substring)
string:match('.*()'..substring)
Lua returnerer nul
Ada.Strings.Unbounded.Index(Source => string, Pattern => substring,
Going => Ada.Strings.Backward)
Ada returnerer 0
string.lastIndexOf(substring«,startpos«, charcount»») Cobra returnerer -1
string lastIndexOfString:substring Småsnak returnerer 0
string last substring string startpos Tcl returnerer -1
(⌽<\⌽substring⍷'string')⍳1 APL returnerer -1
string.rfind(substring) Rust vender tilbage 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


ret

Definition right(string,n) returnerer streng
Beskrivelse Returnerer den højre n del af en streng. Hvis n er større end strengens længde, returnerer de fleste implementeringer hele strengen (der findes undtagelser - se kodeeksempler).
Format Sprog
string (string'Last - n + 1 .. string'Last) Ada
Right(string,n) VB
RIGHT$(string,n) GRUNDLÆGGENDE
right(string,n) FreeBASIC , Ingres , Pick Basic
strcpy(string2, string+n)(n må ikke være større end strengens længde ) C
string.Substring(string.Length()-n) C#
string[len(string)-n:]
string.substring(string.length()-n) Java
string.slice(-n) JavaScript
right(string,n «,padchar») Rexx , Erlang
substr(string,-n) Perl 5 , PHP
substr(string,*-n)
string.substr(*-n)
Raku
string[-n:] Cobra , Python
string[n] Vælg Basic
(string-take-right string n) Ordning (SRFI 13)
string[-n..-1] Rubin
string[$-n .. $] D
String.sub string (String.length string - n) n OCaml
string.sub(string, -n)
(string):sub(-n)
Lua
string last: n Smalltalk ( Squeak , Pharo )
StringTake[string, -n] Mathematica
string (1:n) COBOL
¯nstring. APL
string[n..]
string.get(n..)
Rust
// 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"


deling

Definition <string> .rpartition ( separator ) Søger efter separatoren fra højre til venstre i strengen og returnerer derefter understrengen før separatoren; separatoren; derefter delstrengen efter separatoren.
Beskrivelse Opdeler den givne streng med den højeste separator og returnerer de tre underlag, der tilsammen udgør originalen.
Format Sprog
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')

skive

se #substring


dele

Definition <string> .split ( separator [, grænse ]) opdeler en streng på separator, eventuelt kun op til et begrænset antal underlag
Beskrivelse Opdeler den givne streng efter forekomster af separatoren (i sig selv en streng) og returnerer en liste (eller array) af substraterne. Hvis grænsen er givet, efter at grænsen - 1 separatorer er blevet læst, bliver resten af ​​strengen til den sidste delstreng, uanset om den har nogen separatorer i den. Scheme- og Erlang -implementeringerne ligner hinanden, men adskiller sig på flere måder. JavaScript adskiller sig også ved at det klipper, det sætter ikke resten af ​​strengen i det sidste element. Se eksemplet her . Cobra -implementeringen vil som standard bruges til mellemrum. Modsat tilslutning .
Format Sprog
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)
(string-tokenize string« charset« start« end»»») Ordning (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] Objective-C ( NSString *kun)
string.componentsSeparatedByString(separator) Swift (Foundation)
TStringList.Delimiter, TStringList.DelimitedText Objekt Pascal
StringSplit[string, separator«, limit»] Mathematica
string.split«(sepchars«, limit«, options»»)» Cobra
split string separator Tcl
(separatorstring)⊂stringeller i henholdsvis APL2 og Dyalog APL 16.0 separator(≠⊆⊢)string APL
string.split(separator)

string.split(limit, separator)

Rust
// 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

se #Format

strimmel

se #trim


strcmp

se #Sammenlign (heltal resultat)


substring

Definition substring(string, startpos, endpos)returnerer streng returnerer streng
substr(string, startpos, numChars)
Beskrivelse Returnerer en understreng af streng mellem start ved startpos og endpos , eller startende ved startpos med længde numChars . Den resulterende streng afkortes, hvis der er færre end numChars -tegn ud over startpunktet. endpos repræsenterer indekset efter det sidste tegn i delstrengen. Bemærk, at for kodninger med variabel længde, f.eks. UTF-8 , UTF-16 eller Shift-JIS , kan det være nødvendigt at fjerne strengpositioner for enden for at undgå ugyldige strenge.
Format Sprog
string[startpos:endpos] ALGOL 68 (ændrer basisindeks)
string (startpos .. endpos) Ada (ændrer basisindeks)
Mid(string, startpos, numChars) VB
mid(string, startpos, numChars) FreeBASIC
string[startpos+(⍳numChars)-~⎕IO] APL
MID$(string, startpos, numChars) GRUNDLÆGGENDE
substr(string, startpos, numChars) AWK (ændrer streng), Perl 5 , PHP
substr(string, startpos, numChars)
string.substr(startpos, numChars)
Raku
substr(string, startpos «,numChars, padChar») Rexx
string[startpos:endpos] Cobra , Python , Go
string[startpos, numChars] Vælg Basic
string[startpos, numChars]
string[startpos .. endpos-1]
string[startpos ... endpos]
Rubin
string[startpos .. endpos]
string[startpos len numChars]
Frø 7
string.slice(startpos«, endpos») JavaScript
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) Objekt Pascal ( Delphi )
(substring string startpos endpos) Ordning
(subseq string startpos endpos) Almindelig Lisp
(subseq string startpos endpos) ISLISP
String.sub string startpos numChars OCaml
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 startpos string Haskell
[string substringWithRange:NSMakeRange(startpos, numChars)] Objective-C ( NSString *kun)
string.[startpos..endpos] F#
string.sub(string, startpos, endpos)
(string):sub(startpos, endpos)
Lua
string copyFrom: startpos to: endpos Småsnak
string(startpos:endpos) Fortran
SUBSTRING(string FROM startpos «FOR numChars») SQL
StringTake[string, {startpos, endpos}] Mathematica
string (startpos:numChars) COBOL
string range string startpos endpos Tcl
string[startpos..endpos]
string.get(startpos..endpos)
Rust
// 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****" */


Store bogstaver

Definition uppercase(string) returnerer streng
Beskrivelse Returnerer strengen med store bogstaver.
Format Sprog
UCase(string) VB
ucase(string) FreeBASIC
toupper(string) AWK (ændrer streng)
uc(string) Perl , Raku
string.uc Raku
toupper(char) C (fungerer på et tegn)
for(size_t i = 0, len = strlen(string); i< len; i++) string[i] = toupper(string[i]);
for (char *c = string; *c != '\0'; c++) *c = toupper(*c);
C (string / char array)
std.string.toUpper(string) D
transform(string.begin(), string.end(), result.begin(), toupper) C ++
uppercase(string) Objekt Pascal ( Delphi )
upcase(char) Object Pascal ( Delphi ) (fungerer på et tegn)
strtoupper(string) PHP
upper(string) Frø 7
echo "string" | tr 'a-z' 'A-Z' Unix
translate(string), eller

UPPER variables, eller
PARSE UPPER VAR SrcVar DstVar

Rexx
string.upper() Python
upcase(string) Vælg Basic
string.upcase Rubin
strings.ToUpper(string)
(string-upcase string) Skema , Fælles 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 Objective-C ( NSString *kun), Swift (Foundation)
string.upper(string)
(string):upper()
Lua
string asUppercase Småsnak
UPPER(string) SQL
ToUpperCase[string] Mathematica
«FUNCTION» UPPER-CASE(string) COBOL
string.toUpper Cobra
string toupper string Tcl
string.to_uppercase() Rust
// 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?"

trimme

trimeller stripbruges til at fjerne mellemrum fra begyndelsen, slutningen eller både begyndelsen og slutningen af ​​en streng.

Eksempel på brug Sprog
String.Trim([chars]) C# , VB.NET , Windows PowerShell
string.strip(); D
(.trim string) Clojure
sequence [ predicate? ] trim Faktor
(string-trim '(#\Space #\Tab #\Newline) string) Almindelig Lisp
(string-trim string) Ordning
string.trim() Java , JavaScript (1.8.1+, Firefox 3.5+), Rust
Trim(String) Pascal , QBasic , Visual Basic , Delphi
string.strip() Python
strings.Trim(string, chars)
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]] Objective-C ved hjælp af kakao
string withBlanksTrimmed
string withoutSpaces
string withoutSeparators
Smalltalk (Squeak, 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+

Andre sprog

På sprog uden en indbygget trimfunktion er det normalt enkelt at oprette en brugerdefineret funktion, der udfører den samme opgave.

APL

APL kan bruge regulære udtryk direkte:

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

Alternativt en funktionel tilgang, der kombinerer boolske masker, der filtrerer væk mellemliggende og efterfølgende rum:

Trim{/⍨(\⌽∨\∘)' '}

Eller vend og fjern mellemrum mellem to gange:

Trim{(\' ')/}2

AWK

I AWK kan man bruge almindelige udtryk til at trimme:

 ltrim(v) = gsub(/^[ \t]+/, "", v)
 rtrim(v) = gsub(/[ \t]+$/, "", v)
 trim(v)  = ltrim(v); rtrim(v)

eller:

 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 ++

Der er ingen standard trimfunktion i C eller C ++. De fleste af de tilgængelige strengbiblioteker til C indeholder kode, der implementerer trimning eller funktioner, der letter en effektiv implementering betydeligt. Funktionen er også ofte blevet kaldt EatWhitespace i nogle ikke-standardiserede C-biblioteker.

I C kombinerer programmører ofte en ltrim og rtrim for at implementere trim:

#include <string.h>
#include <ctype.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] != '\0' && isspace((unsigned char) str[n])) {
    n++;
  }
  memmove(str, str + n, strlen(str) - n + 1);
}

void trim(char *str)
{
  rtrim(str);
  ltrim(str);
}

Den open source C ++ bibliotek Boost har flere trim varianter, herunder en standard:

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

Bemærk, at med boosts funktion simpelthen navngivet trimer inputsekvensen ændret på stedet og returnerer ikke et resultat.

Et andet open source C ++ bibliotek Qt har flere trimvarianter, herunder en standard:

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

Den Linux-kernen indeholder også en stribe funktion, strstrip()siden 2.6.18-RC1, der trimmer strengen "på plads". Siden 2.6.33-rc1 bruger kernen i strim()stedet for strstrip()at undgå falske advarsler.

Haskell

En trimalgoritme i Haskell :

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

kan tolkes som følger: f taber det foregående mellemrum og vender strengen. f anvendes derefter igen på sit eget output. Bemærk, at typesignaturen (den anden linje) er valgfri.

J

Trimalgoritmen i J er en funktionel beskrivelse:

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

Det vil sige: filter ( #~) for ikke-mellemrumstegn ( ' '&~:) mellem førende ( +./\) og ( *.) efterfølgende ( +./\.) mellemrum.

JavaScript

Der er en indbygget trimfunktion i JavaScript 1.8.1 (Firefox 3.5 og nyere) og ECMAScript 5-standarden. I tidligere versioner kan den tilføjes til String -objektets prototype som følger:

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

Perl

Perl 5 har ingen indbygget trimfunktion. Funktionaliteten opnås imidlertid almindeligvis ved hjælp af regulære udtryk .

Eksempel:

$string =~ s/^\s+//;            # remove leading whitespace
$string =~ s/\s+$//;            # remove trailing whitespace

eller:

$string =~ s/^\s+|\s+$//g ;     # remove both leading and trailing whitespace

Disse eksempler ændrer værdien af ​​den oprindelige variabel $string.

StripLTSpace in String::Stripfra CPAN er også tilgængelig for Perl .

Der er imidlertid to funktioner, der normalt bruges til at fjerne mellemrum fra slutningen af ​​strenge, chompog chop:

  • chop fjerner det sidste tegn fra en streng og returnerer det.
  • chompfjerner den eller de efterfølgende nylinjetegn fra en streng, hvis den findes. (Hvad der udgør en ny linje er $ INPUT_RECORD_SEPARATOR afhængig).

I Raku , det kommende søstersprog i Perl, har strenge en trimmetode.

Eksempel:

$string = $string.trim;     # remove leading and trailing whitespace
$string .= trim;            # same thing

Tcl

Den Tcl string kommando har tre relevante underkommandoer: trim, trimrightog trimleft. For hver af disse kommandoer kan der angives et yderligere argument: en streng, der repræsenterer et sæt tegn, der skal fjernes - standarden er mellemrum (mellemrum, fane, ny linje, vognretur).

Eksempel på trimning af vokaler:

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

XSLT inkluderer funktionen, der fjerner ledende og efterfølgende mellemrum, ud over at erstatte enhver mellemrumssekvens (inklusive linjeskift) med et enkelt mellemrum. normalize-space(string)

Eksempel:

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

XSLT 2.0 indeholder regulære udtryk, der giver en anden mekanisme til at udføre strengtrimning.

En anden XSLT -teknik til trimning er at bruge XPath 2.0 substring()-funktionen.

Referencer