Programlama dillerinin karşılaştırılması (string fonksiyonları) - Comparison of programming languages (string functions)

Dize işlevleri , bilgisayar programlama dillerinde bir dizeyi işlemek veya bir dizeyle ilgili bilgileri sorgulamak için kullanılır (bazıları her ikisini de yapar).

Dize veri türüne sahip çoğu programlama dili, dizeleri doğrudan işlemek için her dilde başka düşük düzeyli yollar olsa da, bazı dize işlevlerine sahip olacaktır. Nesne yönelimli dillerde, dize işlevleri genellikle dize nesnelerinin özellikleri ve yöntemleri olarak uygulanır. İşlevsel ve liste tabanlı dillerde bir dizi bir (karakter kodlarının listesi) olarak temsil edilir, bu nedenle tüm liste işleme prosedürleri dize işlevleri olarak kabul edilebilir. Bununla birlikte, bu tür diller, açık dizeye özgü işlevlerin bir alt kümesini de uygulayabilir.

Dizeleri işleyen işlev için, C# ve Java gibi modern nesne yönelimli diller değişmez dizelere sahiptir ve bir kopya döndürür (yeni tahsis edilen dinamik bellekte), C gibi diğerleri ise programcı verileri yeni bir dizeye kopyalamadıkça orijinal dizeyi değiştirir. Aşağıdaki Birleştirme örneğine bakın.

String fonksiyonunun en temel örneği length(string)fonksiyondur. Bu işlev, bir dize değişmezinin uzunluğunu döndürür .

örneğin length("hello world")11 döndürür.

Diğer diller, benzer veya tam olarak aynı sözdizimine veya parametrelere veya sonuçlara sahip dize işlevlerine sahip olabilir. Örneğin, birçok dilde uzunluk işlevi genellikle len (string) olarak temsil edilir . Aşağıdaki ortak işlevler listesi, bu karışıklığı sınırlamaya yardımcı olmayı amaçlamaktadır.

Ortak dize işlevleri (çoklu dil başvurusu)

Birçok dilde ortak olan dize işlevleri, kullanılan farklı adlar da dahil olmak üzere aşağıda listelenmiştir. Aşağıdaki ortak işlevler listesi, programcıların bir dilde eşdeğer işlevi bulmalarına yardımcı olmayı amaçlamaktadır. Not, dize bitiştirme ve normal ifadeler ayrı sayfalarda işlenir. İçinde Tablolar guillemets ( «...») isteğe bağlıdır.

CharAt

Tanım charAt(string,integer) karakteri döndürür.
Açıklama Dizedeki dizindeki karakteri döndürür.
Eş değer 1 karakter uzunluğundaki alt dizeye bakın .
Biçim Diller Temel dizin
string[i] ALGOL 68 , APL , Julia , Pascal , Object Pascal ( Delphi ), Seed7 1
string[i] C , C++ , C# , Cobra , D , FreeBASIC , Git , Python , PHP , Ruby , Windows PowerShell , JavaScript , APL 0
string{i} PHP (5.3'te kullanımdan kaldırıldı) 0
string(i) Ada ≥1
Mid(string,i,1) VB 1
MID$(string,i,1) TEMEL 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) Pas 0
string[i,1] Temel Seç 1
String.sub (string, i) standart makine öğrenimi 0
string !! i Haskell 0
(string-ref string i) Şema 0
(char string i) Ortak 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) (sınır denetimi ile) 0
lists:nth(i, string) Erlang 1
[string characterAtIndex:i] Objective-C ( NSString *yalnızca) 0
string.sub(string, i, i)
(string):sub(i, i)
Lua 1
string at: i Smalltalk (sınır kontrolü ile) 1
string index string i Tcl 0
StringTake[string, {i}] Matematik , Wolfram Dili 1
string@i Eyfel 1
string (i:1) COBOL 1
istring APL 0 veya 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')

Karşılaştır (tam sayı sonucu)

Tanım compare(string1,string2) tamsayı döndürür.
Açıklama İki diziyi birbiriyle karşılaştırır. Eşdeğer iseler sıfır döndürülür. Aksi takdirde, bu yordamlar en dizge olup karşılık gelen pozitif ya da negatif sonuç döndürür 1 olduğu sözlük sırasında dize daha büyük ya da daha az, daha sırasıyla 2 . İstisnalar, ilk uyuşmazlığın indeksini döndüren Scheme ve Rexx rutinleri ve alıcının string parametresine göre nasıl sıraladığını söyleyen bir karşılaştırma koduna cevap veren Smalltalk'tır.
Biçim Diller
IF string1<string2 THEN -1 ELSE ABS (string1>string2) FI ALGOL 68
cmp(string1, string2) piton 2
(string1 > string2) - (string1 < string2) piton
strcmp(string1, string2) C , PHP
std.string.cmp(string1, string2) NS
StrComp(string1, string2) VB , Nesne Pascal ( Delphi )
string1 cmp string2 Perl , Raku
string1 compare: string2 Küçük konuşma ( Squeak , Pharo )
string1 <=> string2 Ruby , C++ (STL, C++20 )
string1.compare(string2) C++ (STL), Swift (Temel)
compare(string1, string2) Rexx , Tohum7
CompareStr(string1, string2) Pascal , Nesne Pascal ( Delphi )
string1.compareTo(string2) Kobra , Java
string1.CompareTo(string2) VB.NET , C# , F#
(compare string1 string2) Clojure
(string= string1 string2) Ortak Lisp
(string-compare string1 string2 p< p= p>) Şema (SRFI 13)
(string= string1 string2) ISLISP
compare string1 string2 OCaml
String.compare (string1, string2) standart makine öğrenimi
compare string1 string2 Haskell
[string]::Compare(string1, string2) Windows PowerShell'i
[string1 compare:string2] Objective-C ( NSString *yalnızca)
LLT(string1,string2)
LLE(string1,string2)
LGT(string1,string2)
LGE(string1,string2)
Fortran
string1.localeCompare(string2) JavaScript
bytes.Compare([]byte(string1), []byte(string2)) Gitmek
string compare ?-nocase? ?-length int? string1 string2 Tcl
compare(string1,string2,count) PL/I
string1.cmp(string2) Pas
# 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)

Karşılaştır (ilişkisel operatör tabanlı, Boole sonucu)

Tanım string1 OP string2VEYA Boole döndürür. (compare string1 string2)
Açıklama İlişkisel bir işleç veya işlev kullanarak iki dizeyi sözlükbilimsel olarak karşılaştırır. Boole sonucu döndürüldü.
Biçim Diller
string1 OP string2, OPherhangi biri nerede olabilir =, <>, <, >, <=ve>= Pascal , Object Pascal ( Delphi ), OCaml , Seed7 , Standard ML , BASIC , VB , VB .NET , F#
string1 OP string2, OPherhangi biri nerede olabilir =, /=, ≠, <, >, <=, ≤ve ; Ayrıca: EQ, NE, LT, LE, GEveGT ALGOL 68
(stringOP? string1 string2), OPherhangi biri nerede olabilir =, -ci=, <, -ci<, >, -ci>, <=, -ci<=, >=ve -ci>=(' -ci' ile başlayan operatörler büyük/küçük harfe duyarlı değildir) Şema
(stringOP string1 string2), OPherhangi biri nerede olabilir =, -ci=, <>, -ci<>, <, -ci<, >, -ci>, <=, -ci<=, >=ve -ci>=(' -ci' ile başlayan operatörler büyük/küçük harfe duyarlı değildir) Şema (SRFI 13)
(stringOP string1 string2), OPherhangi biri nerede olabilir =, -equal, /=, -not-equal, <, -lessp, >, -greaterp, <=, -not-greaterp, >=ve -not-lessp(sözlü operatörler büyük/küçük harfe duyarsızdır) Ortak Lisp
(stringOP string1 string2), OPherhangi biri nerede olabilir =, /=, <, >, <=,ve>= ISLISP
string1 OP string2, OPherhangi biri nerede olabilir =, \=, <, >, <=ve>= Rexx
string1 OP string2, OPherhangi biri nerede olabilir =, ¬=, <, >, <=, >=, ¬<ve¬> PL/I
string1 OP string2, OPherhangi biri nerede olabilir =, /=, <, >, <=ve>= Ada
string1 OP string2, OPherhangi biri nerede olabilir ==, /=, <, >, =<ve>= Erlang
string1 OP string2, OPherhangi biri nerede olabilir ==, /=, <, >, <=ve>= Haskell
string1 OP string2, OPherhangi biri nerede olabilir veeq, ne, lt, gt, lege Perl , Raku
string1 OP string2, OPherhangi biri nerede olabilir ==, !=, <, >, <=ve>= C++ (STL), C# , D , Go , JavaScript , Python , PHP , Ruby , Rust , Swift
string1 OP string2, OPherhangi biri nerede olabilir -eq, -ceq, -ne, -cne, -lt, -clt, -gt, -cgt, -le, -cle, -ge,ve -cge (' c' ile başlayan operatörler büyük/küçük harf duyarlıdır) Windows PowerShell'i
string1 OP string2, OPherhangi biri nerede olabilir ==, ~=, <, >, <=ve>= Lua
string1 OP string2, OPherhangi biri nerede olabilir =, ~=, <, >, <=ve>= küçük konuşma
string1 OP string2, OPherhangi biri nerede olabilir ==, /=, <, >, <=ve >=; Also: .EQ., .NE., .LT., .LE., .GT.ve.GE. Fortran .
string1 OP string2ifadeli eşdeğerlerin yanı sıra OPherhangi biri nerede olabilir=, <>, <, >, <=, >= COBOL
string1 OP string2OPherhangi biri nerede olabilir ==, <>, <, >, <=ve>= Kobra
string1 OP string2sözdiziminde mevcuttur, ancak dize içeriğini değil, dizeleri işaret eden işaretçilerin karşılaştırılması anlamına gelir. Karşılaştır (tamsayı sonucu) işlevini kullanın. C , Java
string1.METHOD(string2)nerede METHODherhangi biridir eq, ne, gt, lt, ge,le Pas
% 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

birleştirme

Tanım concatenate(string1,string2) dize döndürür.
Açıklama İki dizeyi birbirine bağlayarak (birleştirir), birleştirilmiş dizeyi döndürür. C gibi bazı dillerin değiştirilebilir dizeleri olduğunu unutmayın, bu nedenle gerçekten ikinci dize ilk dizeye eklenir ve mutasyona uğramış dize döndürülür.
Biçim Diller
string1 & string2 Ada , FreeBASIC , Seed7 , BASIC , VB , VB .NET , COBOL (yalnızca değişmez değerler arasında)
strcat(string1, string2) C , C++ ( yalnızca) 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) Şema , ISLISP
(concatenate 'string string1 string2) Ortak Lisp
(str string1 string2) Clojure
string1 || string2 Rexx , SQL , PL/I
string1 // string2 Fortran
string1 ++ string2 Erlang , Haskell
string1 ^ string2 OCaml , Standart ML , F#
[string1 stringByAppendingString:string2] Objective-C ( NSString *yalnızca)
string1 .. string2 Lua
string1 , string2 Küçük konuşma , APL
string1 string2 SNOBOL
string1string2 Bash kabuğu
string1 <> string2 matematik
concat string 1 string 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"

içerir

Tanım contains(string,substring) boole döndürür
Açıklama Dizenin alt dize olarak alt dize içerip içermediğini döndürür . Bu, Bul'u kullanmaya ve ardından Bul bölümünün üçüncü sütununda listelenen arıza koşuluyla sonuçlanmadığını algılamaya eşdeğerdir . Ancak, bazı dillerin bu testi ifade etmenin daha basit bir yolu vardır.
İlgili Bulmak
Biçim Diller
string_in_string(string, loc int, substring) ALGOL 68
ContainsStr(string, substring) Nesne Pascal ( Delphi )
strstr(string, substring) != NULL C , C++ ( char *yalnızca)
string.Contains(substring) C# , VB .NET , Windows PowerShell , F#
string.contains(substring) Kobra , 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 tohum7
substring in string Kobra , Python (2.3+)
string.find(string, substring) ~= nil Lua
string.include?(substring) yakut
Data.List.isInfixOf substring string Haskell (GHC 6.6+)
string includesSubstring: substring Smalltalk ( Squeak , Pharo , Smalltalk/X )
String.isSubstring substring string standart makine öğrenimi
(search substring string) Ortak Lisp
(not (null (string-index substring string))) ISLISP
(substring? substring string) Clojure
! StringFreeQ[string, substring] matematik
index(string, substring, startpos)>0 Fortran, PL/I
index(string, substring, occurrence)>0 Temel Seç
strings.Contains(string, substring) Gitmek
string.find(substring) != string::npos C++
[string containsString:substring] Objective-C ( NSString *yalnızca iOS 8+/OS X 10.10+)
string.rangeOfString(substring) != nil Swift (Vakıf)
∨/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 "

eşitlik

İki dizenin eşit olup olmadığını test eder. Ayrıca bkz . #Karşılaştır ve #Karşılaştır . Genel bir tamsayı ile karşılaştır sonucu aracılığıyla eşitlik kontrolleri yapmanın yalnızca programcı için kafa karıştırıcı olmadığını, aynı zamanda genellikle önemli ölçüde daha pahalı bir işlem olduğunu unutmayın; bu özellikle " C-strings " kullanılırken geçerlidir .

Biçim Diller
string1 == string2 Python , C++ (STL), C# , Cobra , Go , JavaScript (benzerlik), PHP (benzerlik), 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) Şema
(string= string1 string2) Ortak 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 kabuğu
string1 eq string2 Perl , Raku
string1.equals(string2) Kobra , Java
string1.Equals(string2) C#
string1 -eq string2, or
[string]::Equals(string1, string2)
Windows PowerShell'i
[string1 isEqualToString:string2], or
[string1 isEqual:string2]
Objective-C ( NSString *yalnızca)
string1string2 APL
string1.eq(string2) Pas
// 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


Bulmak

Tanım find(string,substring) tamsayı döndürür
Açıklama İlk geçtiği başlamasından konumunu döndürür alt dize içinde dize . Eğer alt dize bu rutini çoğunda geçersiz endeks değeri döndürmek bulunamazsa - -1 endeksler nerede onlar 1 tabanlı nerede, 0 0 tabanlı - ya da bazı değer false olarak yorumlanmalıdır.
İlgili instrrev
Biçim Diller Bulunmazsa
string in string(substring, pos, string[startpos:]) ALGOL 68 BOOL: DOĞRU veya YANLIŞ ve REF INT konumunda konum döndürür.
InStr(«startposstring,substring) VB (pozisyonlar 1'den başlar) 0 döndürür
INSTR$(string,substring) TEMEL (pozisyonlar 1'den başlar) 0 döndürür
index(string,substring) AWK 0 döndürür
index(string,substring«,startpos») Perl 5 -1 döndürür
index(string,substring«,startpos»)
string.index(substring,«,startpos»)
Raku sıfır döndürür
instr(«startposstring,substring) FreeBASIC 0 döndürür
strpos(string,substring«,startpos») PHP YANLIŞ döndürür
locate(string, substring) Girişler dize uzunluğu + 1 döndürür
strstr(string, substring) C , C++ ( yalnızca, işaretçiyi ilk karaktere döndürür) char * NULL döndürür
std.string.indexOf(string, substring) NS -1 döndürür
pos(string, substring«, startpos») tohum7 0 döndürür
strings.Index(string, substring) Gitmek -1 döndürür
pos(substring, string) Pascal , Nesne Pascal ( Delphi ) 0 döndürür
pos(substring, string«,startpos») Rexx 0 döndürür
string.find(substring«,startpos») C++ (STL) std::string::npos'u döndürür
string.find(substring«,startpos«,endpos»») piton -1 döndürür
string.index(substring«,startpos«,endpos»») ValueError'ı yükseltir
string.index(substring«,startpos») yakut sıfır döndürür
string.indexOf(substring«,startpos») Java , JavaScript -1 döndürür
string.IndexOf(substring«,startpos«, charcount»») VB .NET , C# , Windows PowerShell , F# -1 döndürür
string:str(string, substring) Erlang 0 döndürür
(string-contains string substring) Şema (SRFI 13) #f döndürür
(search substring string) Ortak Lisp NIL döndürür
(string-index substring string) ISLISP İadeler nil
List.findIndex (List.isPrefixOf substring) (List.tails string) Haskell (Sadece indeks döndürür ) hiçbir şey döndürmez
Str.search_forward (Str.regexp_string substring) string 0 OCaml Not_found'u yükseltir
Substring.size (#1 (Substring.position substring (Substring.full string))) standart makine öğrenimi dize uzunluğunu döndürür
[string rangeOfString:substring].location Objective-C ( NSString *yalnızca) NSNotFound'u döndürür
string.find(string, substring)
(string):find(substring)
Lua sıfır döndürür
string indexOfSubCollection: substring startingAt: startpos ifAbsent: aBlock
string findString: substring startingAt: startpos
Küçük konuşma ( Squeak , Pharo ) bir blok kapatma (veya herhangi bir nesne anlama değeri) olan aBlock'u değerlendir
0 döndürür
startpos = INDEX(string, substring «,back» «, kind») Fortran alt dize dizede değilse 0 döndürür; alt dize boşsa UZUNLUK(dize)+1 döndürür
POSITION(substring IN string) SQL 0 döndürür (konumlar 1'den başlar)
index(string, substring, startpos ) PL/I 0 döndürür (konumlar 1'den başlar)
index(string, substring, occurrence ) Temel Seç alt dize oluşumu dizede değilse 0 döndürür; (pozisyonlar 1'den başlar)
string.indexOf(substring«,startpos«, charcount»») Kobra -1 döndürür
string first substring string startpos Tcl -1 döndürür
(substringstring)⍳1 APL 1 + dizedeki son konumu döndürür
string.find(substring) Pas İadeler 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"


Karakter bul

Tanım find_character(string,char) tamsayı döndürür
Açıklama Karakter ilk geçtiği başlamasından konumunu döndürür Char içinde dize . Karakter bulunamazsa, bu rutinlerin çoğu geçersiz bir dizin değeri döndürür – dizinlerin 0 tabanlı olduğu yerde -1, 1 tabanlı olduğu yerde 0 – veya Boolean FALSE olarak yorumlanacak bir değer. Bu, bir karakterden oluşan bir dize ile #Find'in özel bir durumu olarak gerçekleştirilebilir ; ancak birçok dilde yalnızca bir karakteri bulmak daha basit veya daha verimli olabilir. Ayrıca, birçok dilde karakterler ve dizgiler farklı türlerdedir, bu nedenle böyle bir işleve sahip olmak uygundur.
İlgili bulmak
Biçim Diller Bulunmazsa
char in string(char, pos, string[startpos:]) ALGOL 68 BOOL: DOĞRU veya YANLIŞ ve REF INT konumunda konum döndürür.
instr(string, any char«,startpos») (char, bir karakterden daha fazlasını içerebilir, bu durumda herhangi birinin ilk görünümünün konumu döndürülür.) FreeBASIC 0 döndürür
strchr(string,char) C , C++ ( yalnızca, işaretçiyi karaktere döndürür) char * NULL döndürür
std.string.find(string, dchar) NS -1 döndürür
string.find(char«,startpos») C++ (STL) std::string::npos'u döndürür
pos(string, char«, startpos») tohum7 0 döndürür
strings.IndexRune(string,char) Gitmek -1 döndürür
string.indexOf(char«,startpos») Java , JavaScript -1 döndürür
string.IndexOf(char«,startpos«, charcount»») VB .NET , C# , Windows PowerShell , F# -1 döndürür
(position char string) Ortak Lisp NIL döndürür
(char-index char string) ISLISP İadeler nil
List.elemIndex char string Haskell (geri döner ) Just index İadeler Nothing
String.index string char OCaml Not_found'u yükseltir
position = SCAN (string, set «, back» «, kind») or
position = VERIFY (string, set «, back» «, kind»)
Fortran sıfır döndürür
string indexOf: char ifAbsent: aBlock
string indexOf: char
string includes: char
küçük konuşma değerlendirmek aBlockbir olan BlockClosure(ya da herhangi bir nesnenin anlaşılması değeri)
0 döndürür
döner trueya dafalse
index(string, char, startpos ) PL/I 0 döndürür (konumlar 1'den başlar)
string.index(?char) yakut sıfır döndürür
strpos(string,char,startpos) PHP İadeler false
string.indexOf(char«,startpos«, charcount»») Kobra -1 döndürür
stringchar APL 1 + dizedeki son konumu döndürür
string.find(substring) Pas İadeler 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 Bir karakter kümesi verildiğinde, SCAN bulunan ilk karakterin konumunu döndürürken, DOĞRULA kümeye ait olmayan ilk karakterin konumunu döndürür.

Biçim

Tanım format(formatstring, items) dize döndürür
Açıklama Bir veya daha fazla öğenin biçimlendirilmiş dize temsilini döndürür.
Biçim Diller Dize sözdizimini biçimlendir
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 ) piton
std.string.format(formatstring, items) NS C
Format(formatstring, items) Nesne Pascal ( Delphi )
fmt.Sprintf(formatstring, items) Gitmek C
printf -v outputstring formatstring items Bash kabuğu C
formatstring % (items) Python , Yakut C
formatstring.format(items) piton .AĞ
fformatstring piton 3
Printf.sprintf formatstring items OCaml , F# C
Text.Printf.printf formatstring items Haskell (GHC) C
formatstring printf: items küçük konuşma C
String.format(formatstring, items) Java C
String.Format(formatstring, items) VB.NET , C# , F# .AĞ
(format formatstring items) Şema (SRFI 28) Lisp
(format nil formatstring items) Ortak Lisp Lisp
(format formatstring items) Clojure Lisp
formatstring -f items Windows PowerShell'i .AĞ
[NSString stringWithFormat:formatstring, items] Objective-C ( NSString *yalnızca) C
String(format:formatstring, items) Swift (Vakıf) 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 (Fortran'a benzer)
String.format(formatstring, items) Kobra .AĞ
format formatstring items Tcl C
formatnumbersitems veya formatstring ⎕FMT items APL APL
format!(formatstring, items) Pas piton
// 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" */

eşitsizlik

İki dizenin eşit olup olmadığını test eder. Ayrıca bkz . #Eşitlik .

Biçim Diller
string1 ne string2, or string1 NE string2 ALGOL 68 – not: " ne " operatörü kelimenin tam anlamıyla kalın yazı tipindedir.
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 (kullanımdan kaldırıldı)
string1 # string2 BASIC (bazı uygulamalar)
string1 ne string2 Perl , Raku
(string<> string1 string2) Şema (SRFI 13)
(string/= string1 string2) Ortak Lisp
(string/= string1 string2) ISLISP
(not= string1 string2) Clojure
string1 != string2 C++ (STL), C# , Go , JavaScript (benzer değil), PHP (benzer değil), Python , Ruby , Rust , Swift , D , Mathematica
string1 !== string2 JavaScript , PHP
string1 \= string2 Rexx
string1 ¬= string2 PL/I
test string1 != string2, or
[ string1 != string2 ]
bourne kabuğu
string1 -ne string2, or
-not [string]::Equals(string1, string2)
Windows PowerShell'i
string1 ~= string2 Lua , küçük konuşma
string1string2 APL
string1.ne(string2) Pas
// 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

dizin

#Bul'a bakın

indeksi

#Bul'a bakın

instr

#Bul'a bakın

instrrev

bkz #rfind

katılmak

Tanım join(separator, list_of_strings) ayırıcıyla birleştirilmiş dizelerin listesini döndürür
Açıklama Dizeler listesini, alt dizelerin her biri arasında ayırıcı dize olacak şekilde yeni bir dizeye birleştirir. Tersi bölünmüş .
İlgili sprintf
Biçim Diller
std.string.join(array_of_strings, separator) NS
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
(string-join array_of_strings separator) Şema (SRFI 13)
(format nil "~{~a~^separator~}" array_of_strings) Ortak Lisp
(clojure.string/join separator list_of_strings)
(apply str (interpose separator list_of_strings))
Clojure
strings.Join(array_of_strings, separator) Gitmek
join(array_of_strings, separator) tohum7
String.concat separator list_of_strings OCaml
String.concatWith separator list_of_strings standart makine öğrenimi
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'i
[array_of_strings componentsJoinedByString:separator] Objective-C ( NSString *yalnızca)
table.concat(table_of_strings, separator) Lua
{|String streamContents: [ :stream | collectionOfAnything asStringOn: stream delimiter: separator ]
collectionOfAnything joinUsing: separator
Küçük konuşma ( Squeak , Pharo )
array_of_strings.join(separator«, final_separator») Kobra
sequence_of_strings.joinWithSeparator(separator) hızlı 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"

lastindexof

bkz #rfind

sol

Tanım left(string,n) dize döndürür
Açıklama Bir dizenin sol n bölümünü döndürür . Eğer n dize uzunluğundan daha büyüktür sonra çoğu uygulamaları (istisnalar var - Kod örneklere bakın) tüm dizeyi döndürür. UTF-8 , UTF-16 veya Shift-JIS gibi değişken uzunluklu kodlamalar için geçersiz dizelerden kaçınmak için sondaki dize konumlarının kaldırılmasının gerekli olabileceğini unutmayın.
Biçim Diller
string (string'First .. string'First + n - 1) Ada
substr(string, 0, n) AWK (dize değiştirir), Perl , PHP , Raku
LEFT$(string,n) TEMEL , VB
left(string,n) VB , FreeBASIC , Ingres , Temel Seçim
strncpy(string2, string, n) C standart kitaplığı
string.substr(0,n) C++ (STL), Raku
[string substringToIndex:n] Objective-C ( NSString *yalnızca)
(apply str (take n string)) Clojure
string[0 .. n] NS
string:substr(string, start, length) Erlang
(subseq string 0 n) Ortak Lisp
string[:n] Kobra , Git , Python
left(string,n «,padchar») Rexx , Erlang
string[0, n]
string[0..n - 1]
yakut
string[1, n] Temel Seç
string[ .. n] tohum7
string.Substring(0,n) VB .NET , C# , Windows PowerShell , F#
leftstr(string, n) Pascal , Nesne Pascal ( Delphi )
copy (string,1,n) Turbo Pascal
string.substring(0,n) Java , JavaScript
(string-take string n) Şema (SRFI 13)
take n string Haskell
String.extract (string, n, NONE) standart makine öğrenimi
String.sub string 0 n OCaml
string.[..n] F#
string.sub(string, 1, n)
(string):sub(1, n)
Lua
string first: n Küçük konuşma ( Squeak , Pharo )
string(:n) Fortran
StringTake[string, n] matematik
string («FUNCTION» LENGTH(string) - n:n) COBOL
string.substring(0, n) Kobra
nstring. APL
string[0..n]
string[..n]
string.get(0..n)
string.get(..n)
Pas
# 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"


uzun

bkz #length


uzunluk

Tanım length(string) bir tam sayı döndürür
Açıklama Bir dizenin uzunluğunu döndürür ( boş sonlandırıcıyı veya dizenin dahili yapısal bilgilerinin herhangi birini saymaz ). Boş bir dize, 0 uzunluğunu döndürür.
Biçim İadeler Diller
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 , Git , Temel Seç
length(string), string:len(string) Erlang
Len(string) VB , Temel Seç
string.Length Sayısı UTF-16 kod birimlerinin VB .NET , C# , Windows PowerShell , F#
chars(string)
string.chars
Grafik sayısı (NFG) Raku
codes(string)
string.codes
Unicode kod noktalarının sayısı Raku
string.size OR string.length bayt sayısı yakut
strlen(string) bayt sayısı C , PHP
string.length() C++ (STL)
string.length Kobra , D , JavaScript
string.length() Sayısı UTF-16 kod birimlerinin Java
(string-length string) Şema
(length string) Ortak Lisp , ISLISP
(count string) Clojure
String.length string OCaml
size string standart makine öğrenimi
length string Unicode kod noktalarının sayısı Haskell
string.length Sayısı UTF-16 kod birimlerinin Objective-C ( NSString *yalnızca)
string.characters.count Karakter sayısı Hızlı (2.x)
count(string) Karakter sayısı Hızlı (1.2)
countElements(string) Karakter sayısı Hızlı (1.0–1.1)
string.len(string)
(string):len()
#string
Lua
string size küçük konuşma
LEN(string), or LEN_TRIM(string) Fortran
StringLength[string] matematik
«FUNCTION» LENGTH(string) veya

«FUNCTION» BYTE-LENGTH(string)

sırasıyla karakter sayısı ve bayt sayısı COBOL
string length string karakter sayısını veren bir ondalık dize Tcl
string APL
string.len() bayt sayısı Pas
string.chars().count() Unicode kod noktalarının sayısı Pas
// 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

yerini belirlemek

#Bul'a bakın


küçük harf

Tanım lowercase(string) dize döndürür
Açıklama Dizeyi küçük harfle döndürür.
Biçim Diller
LCase(string) VB
lcase(string) FreeBASIC
lc(string) Perl , Raku
string.lc Raku
tolower(char) C
std.string.toLower(string) NS
transform(string.begin(), string.end(), result.begin(), ::tolower) C++
lowercase(string) Nesne Pascal ( Delphi )
strtolower(string) PHP
lower(string) tohum7
echo "string" | tr 'A-Z' 'a-z' Unix
string.lower() piton
downcase(string) Temel Seç
string.downcase yakut
strings.ToLower(string) Gitmek
(string-downcase string) Şema (R6RS), Ortak Lisp
(lower-case string) Clojure
String.lowercase string OCaml
String.map Char.toLower string standart makine öğrenimi
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 *yalnızca), Swift (Vakıf)
string.lower(string)
(string):lower()
Lua
string asLowercase küçük konuşma
LOWER(string) SQL
lowercase(string) PL/I
ToLowerCase[string] matematik
«FUNCTION» LOWER-CASE(string) COBOL
string.toLower Kobra
string tolower string Tcl
string.to_lowercase() Pas
// 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?"


orta

#alt dizeye bakın


bölme

Tanım <string>.partition( separator ), ayırıcıdan önceki alt dizeyi döndürür; ayırıcı; sonra ayırıcıdan sonraki alt dize.
Açıklama Verilen dizeyi ayırıcıyla böler ve birlikte orijinali oluşturan üç alt dizeyi döndürür.
Biçim Diller Yorumlar
string.partition(separator) Python , Yakut (1.9+)
lists:partition(pred, string) Erlang
split /(separator)/, string, 2 Perl 5
split separator, string, 2
string.split( separator, 2 )
Raku Ayırıcının normal bir ifade olması gerekmez
# 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');


yer değiştirmek

Tanım replace(string, find, replace) dize döndürür
Açıklama Değiştirmek üzere değiştirilen bulma oluşumlarını içeren bir dize döndürür .
Biçim Diller
changestr(find, string, replace) Rexx
std.string.replace(string, find, replace) NS
Replace(string, find, replace) VB
replace(string, find, replace) tohum7
change(string, find, replace) Temel Seç
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) Kobra , Java (1.5+), Python , Rust
string.replaceAll(find_regex, replace) Java
string.gsub(find, replace) yakut
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'i
Str.global_replace (Str.regexp_string find) replace string OCaml
[string stringByReplacingOccurrencesOfString:find withString:replace] Objective-C ( NSString *yalnızca)
string.stringByReplacingOccurrencesOfString(find, withString:replace) Swift (Vakıf)
string.gsub(string, find, replace)
(string):gsub(find, replace)
Lua
string copyReplaceAll: find with: replace Küçük konuşma ( Squeak , Pharo )
string map {find replace} string Tcl
StringReplace[string, find -> replace] matematik
strings.Replace(string, find, replace, -1) Gitmek
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"

ters

Tanım reverse(string)
Açıklama Dizedeki karakterlerin sırasını tersine çevirir.
Biçim Diller
reverse string Perl 5 , Haskell
flip string
string.flip
Raku
lists:reverse(string) Erlang
strrev(string) PHP
string[::-1] piton
(string-reverse string) Şema (SRFI 13)
(reverse string) Ortak Lisp
string.reverse Ruby , D (dizeyi değiştirir)
new StringBuilder(string).reverse().toString() Java
std::reverse(string.begin(), string.end()); C++ ( std::stringyalnızca, dizeyi değiştirir)
StrReverse(string) VB
string.Reverse().ToString() VB.NET , C#
implode (rev (explode string)) standart makine öğrenimi
string.split("").reverse().join("") JavaScript
string.reverse(string)
(string):reverse()
Lua
string reverse küçük konuşma
StringReverse[string] matematik
reverse(string) PL/I
«FUNCTION» REVERSE(string) COBOL
string.toCharArray.toList.reversed.join() Kobra
String(string.characters.reverse()) Hızlı (2.x)
String(reverse(string)) Hızlı (1.2)
string reverse string Tcl
string APL
string.chars().rev().collect::<String>() Pas
" 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"

bul

Tanım rfind(string,substring) tamsayı döndürür
Açıklama Son görüldüğü yerin başlangıç konumunu döndürür alt dize içinde dize . Eğer alt dize bu rutini çoğunda geçersiz endeks değeri döndürmek bulunamazsa - -1 endeksler nerede onlar 1 tabanlı nerede, 0 0 tabanlı - ya da bazı değer false olarak yorumlanmalıdır.
İlgili instr
Biçim Diller Bulunmazsa
InStrRev(«startposstring,substring) VB 0 döndürür
instrrev(«startposstring,substring) FreeBASIC 0 döndürür
rindex(string,substring«,startpos») Perl 5 -1 döndürür
rindex(string,substring«,startpos»)
string.rindex(substring«,startpos»)
Raku sıfır döndürür
strrpos(string,substring«,startpos») PHP YANLIŞ döndürür
string.rfind(substring«,startpos») C++ (STL) std::string::npos'u döndürür
std.string.rfind(string, substring) NS -1 döndürür
string.rfind(substring«,startpos«, endpos»») piton -1 döndürür
string.rindex(substring«,startpos«, endpos»») ValueError'ı yükseltir
rpos(string, substring«,startpos») tohum7 0 döndürür
string.rindex(substring«,startpos») yakut sıfır döndürür
strings.LastIndex(string, substring) Gitmek -1 döndürür
string.lastIndexOf(substring«,startpos») Java , JavaScript -1 döndürür
string.LastIndexOf(substring«,startpos«, charcount»») VB .NET , C# , Windows PowerShell , F# -1 döndürür
(search substring string :from-end t) Ortak Lisp NIL döndürür
[string rangeOfString:substring options:NSBackwardsSearch].location Objective-C ( NSString *yalnızca) NSNotFound'u döndürür
Str.search_backward (Str.regexp_string substring) string (Str.length string - 1) OCaml Not_found'u yükseltir
string.match(string, '.*()'..substring)
string:match('.*()'..substring)
Lua sıfır döndürür
Ada.Strings.Unbounded.Index(Source => string, Pattern => substring,
Going => Ada.Strings.Backward)
Ada 0 döndürür
string.lastIndexOf(substring«,startpos«, charcount»») Kobra -1 döndürür
string lastIndexOfString:substring küçük konuşma 0 döndürür
string last substring string startpos Tcl -1 döndürür
(⌽<\⌽substring⍷'string')⍳1 APL -1 döndürür
string.rfind(substring) Pas İadeler 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


sağ

Tanım right(string,n) dize döndürür
Açıklama Bir dizenin sağ n bölümünü döndürür . Eğer n dize uzunluğundan daha büyüktür sonra çoğu uygulamaları (istisnalar var - Kod örneklere bakın) tüm dizeyi döndürür.
Biçim Diller
string (string'Last - n + 1 .. string'Last) Ada
Right(string,n) VB
RIGHT$(string,n) TEMEL
right(string,n) FreeBASIC , Ingres , Temel Seçim
strcpy(string2, string+n)(n, dize uzunluğundan büyük olmamalıdır ) C
string.Substring(string.Length()-n) C#
string[len(string)-n:] Gitmek
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:] kobra , piton
string[n] Temel Seç
(string-take-right string n) Şema (SRFI 13)
string[-n..-1] yakut
string[$-n .. $] NS
String.sub string (String.length string - n) n OCaml
string.sub(string, -n)
(string):sub(-n)
Lua
string last: n Küçük konuşma ( Squeak , Pharo )
StringTake[string, -n] matematik
string (1:n) COBOL
¯nstring. APL
string[n..]
string.get(n..)
Pas
// 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"


bölüm

Tanım <string>.rpartition( separator ) Dize içinde sağdan sola ayırıcıyı arar ve ayırıcıdan önceki alt dizeyi döndürür; ayırıcı; sonra ayırıcıdan sonraki alt dize.
Açıklama Verilen dizeyi en sağdaki ayırıcıyla böler ve birlikte orijinali oluşturan üç alt dizeyi döndürür.
Biçim Diller
string.rpartition(separator) Python , Yakut
# 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')

dilim

#alt dizeye bakın


bölmek

Tanım <string>.split( separator [, limit ]) bir dizeyi ayırıcıda böler, isteğe bağlı olarak yalnızca sınırlı sayıda alt dizeye kadar
Açıklama Verilen dizeyi ayırıcının (kendisi bir dize) oluşumlarına göre böler ve alt dizelerin bir listesini (veya dizisini) döndürür. Eğer sınır sonra verilir sınırı - 1 ayırıcıları okunmuş, dize geri kalanı ne olursa olsun o herhangi ayırıcılar sahip olsun, son alt dizeye yapılır. Scheme ve Erlang uygulamaları benzerdir ancak birkaç yönden farklılık gösterir. JavaScript, kesmesiyle de farklıdır, dizenin geri kalanını son öğeye koymaz. Buradaki örneğe bakın . Cobra uygulaması varsayılan olarak boşluk olacaktır. Katılmanın tersi .
Biçim Diller
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») piton
string.split(separator«, limit») JavaScript , Java , Ruby
string:tokens(string, sepchars) Erlang
strings.Split(string, separator)
strings.SplitN(string, separator, limit)
Gitmek
(string-tokenize string« charset« start« end»»») Şema (SRFI 13)
Split(string, sepchars«, limit») VB
string.Split(sepchars«, limit«, options»») VB.NET , C# , F#
string -split separator«, limit«, options»» Windows PowerShell'i
Str.split (Str.regexp_string separator) string OCaml
std.string.split(string, separator) NS
[string componentsSeparatedByString:separator] Objective-C ( NSString *yalnızca)
string.componentsSeparatedByString(separator) Swift (Vakıf)
TStringList.Delimiter, TStringList.DelimitedText Nesne Pascal
StringSplit[string, separator«, limit»] matematik
string.split«(sepchars«, limit«, options»»)» Kobra
split string separator Tcl
(separatorstring)⊂stringveya sırasıyla APL2 ve Dyalog APL 16.0'da separator(≠⊆⊢)string APL
string.split(separator)

string.split(limit, separator)

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

#Biçimlendirmeye bakın

şerit

#trim'e bakın


strcmp

bkz. #Compare (tamsayı sonucu)


alt dize

Tanım substring(string, startpos, endpos)dize döndürür dize döndürür
substr(string, startpos, numChars)
Açıklama Bir alt dizesini döndürür dize başlayan arasındaki startPos'da ve endPos ya başlayan startPos'da uzunluğunun NUMCHARS . Başlangıç ​​noktasının ötesinde numChars karakterden daha az karakter varsa, elde edilen dize kesilir . endpos , alt dizedeki son karakterden sonraki dizini temsil eder. UTF-8 , UTF-16 veya Shift-JIS gibi değişken uzunluklu kodlamalar için geçersiz dizelerden kaçınmak için sondaki dize konumlarının kaldırılmasının gerekli olabileceğini unutmayın.
Biçim Diller
string[startpos:endpos] ALGOL 68 (temel dizini değiştirir)
string (startpos .. endpos) Ada (temel dizini değiştirir)
Mid(string, startpos, numChars) VB
mid(string, startpos, numChars) FreeBASIC
string[startpos+(⍳numChars)-~⎕IO] APL
MID$(string, startpos, numChars) TEMEL
substr(string, startpos, numChars) AWK (dize değiştirir), Perl 5 , PHP
substr(string, startpos, numChars)
string.substr(startpos, numChars)
Raku
substr(string, startpos «,numChars, padChar») Rexx
string[startpos:endpos] Kobra , Python , Git
string[startpos, numChars] Temel Seç
string[startpos, numChars]
string[startpos .. endpos-1]
string[startpos ... endpos]
yakut
string[startpos .. endpos]
string[startpos len numChars]
tohum7
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) Nesne Pascal ( Delphi )
(substring string startpos endpos) Şema
(subseq string startpos endpos) Ortak Lisp
(subseq string startpos endpos) ISLISP
String.sub string startpos numChars OCaml
substring (string, startpos, numChars) standart makine öğrenimi
string:sub_string(string, startpos, endpos)
string:substr(string, startpos, numChars)
Erlang
strncpy(result, string + startpos, numChars); C
string[startpos .. endpos+1] NS
take numChars $ drop startpos string Haskell
[string substringWithRange:NSMakeRange(startpos, numChars)] Objective-C ( NSString *yalnızca)
string.[startpos..endpos] F#
string.sub(string, startpos, endpos)
(string):sub(startpos, endpos)
Lua
string copyFrom: startpos to: endpos küçük konuşma
string(startpos:endpos) Fortran
SUBSTRING(string FROM startpos «FOR numChars») SQL
StringTake[string, {startpos, endpos}] matematik
string (startpos:numChars) COBOL
string aralığı string startpos endpos Tcl
string[startpos..endpos]
string.get(startpos..endpos)
Pas
// 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****" */


büyük harf

Tanım uppercase(string) dize döndürür
Açıklama Dizeyi büyük harfle döndürür.
Biçim Diller
UCase(string) VB
ucase(string) FreeBASIC
toupper(string) AWK (dizeyi değiştirir)
uc(string) Perl , Raku
string.uc Raku
toupper(char) C (tek karakter üzerinde çalışır)
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 (dize / karakter dizisi)
std.string.toUpper(string) NS
transform(string.begin(), string.end(), result.begin(), toupper) C++
uppercase(string) Nesne Pascal ( Delphi )
upcase(char) Object Pascal ( Delphi ) (bir karakter üzerinde çalışır)
strtoupper(string) PHP
upper(string) tohum7
echo "string" | tr 'a-z' 'A-Z' Unix
translate(string), veya

UPPER variables, veya
PARSE UPPER VAR SrcVar DstVar

Rexx
string.upper() piton
upcase(string) Temel Seç
string.upcase yakut
strings.ToUpper(string) Gitmek
(string-upcase string) Şema , Ortak Lisp
String.uppercase string OCaml
String.map Char.toUpper string standart makine öğrenimi
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 *yalnızca), Swift (Vakıf)
string.upper(string)
(string):upper()
Lua
string asUppercase küçük konuşma
UPPER(string) SQL
ToUpperCase[string] matematik
«FUNCTION» UPPER-CASE(string) COBOL
string.toUpper Kobra
string toupper string Tcl
string.to_uppercase() Pas
// 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?"

kırpmak

trimor strip, bir dizenin başındaki, sonundaki veya hem başlangıcındaki hem de sonundaki boşlukları kaldırmak için kullanılır.

Örnek kullanım Diller
String.Trim([chars]) C# , VB.NET , Windows PowerShell
string.strip(); NS
(.trim string) Clojure
sequence [ predicate? ] trim faktör
(string-trim '(#\Space #\Tab #\Newline) string) Ortak Lisp
(string-trim string) Şema
string.trim() Java , JavaScript (1.8.1+, Firefox 3.5+), Rust
Trim(String) Pascal , QBasic , Visual Basic , Delphi
string.strip() piton
strings.Trim(string, chars) Gitmek
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 yakut
string.trim Raku
trim(string) PHP , Raku
[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] Kakao kullanarak Objective-C
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) Soğuk füzyon
String.trim string OCaml 4+

Diğer diller

Yerleşik bir kırpma işlevi olmayan dillerde, aynı görevi yerine getiren özel bir işlev oluşturmak genellikle basittir.

APL

APL , düzenli ifadeleri doğrudan kullanabilir:

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

Alternatif olarak, öndeki ve sondaki boşlukları filtreleyen Boole maskelerini birleştiren işlevsel bir yaklaşım:

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

Veya baştaki boşlukları iki kez ters çevirin ve kaldırın:

Trim{(\' ')/}2

AWK

In AWK , tek kırpmak için normal ifadeleri kullanabilirsiniz:

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

veya:

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

C veya C++'da standart bir kırpma işlevi yoktur. C için mevcut dize kitaplıklarının çoğu, kırpmayı uygulayan kodu veya verimli bir uygulamayı önemli ölçüde kolaylaştıran işlevleri içerir. İşlev ayrıca bazı standart olmayan C kitaplıklarında EatWhitespace olarak da adlandırılır .

C'de, programcılar genellikle trim uygulamak için bir ltrim ve rtrim'i birleştirir:

#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);
}

Açık kaynak C ++ kütüphanesi Boost standart da dahil olmak üzere birçok süs varyantları vardır:

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

Boost'un basitçe adlandırılmış işleviyle trim, giriş dizisinin yerinde değiştirildiğini ve bir sonuç döndürmediğini unutmayın.

Başka bir açık kaynak C++ kitaplığı Qt , standart bir tane de dahil olmak üzere çeşitli kırpma varyantlarına sahiptir:

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

Linux çekirdeği ayrıca bir şerit fonksiyonu içerir strstrip(), "yerinde" dizesini kırpar 2.6.18-rc1 beri. 2.6.33-rc1'den beri, çekirdek yanlış uyarıları önlemek için strim()yerine kullanır strstrip().

Haskell

Haskell'de bir trim algoritması :

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

şu şekilde yorumlanabilir: f önceki boşlukları bırakır ve dizeyi tersine çevirir. f daha sonra tekrar kendi çıktısına uygulanır. Tip imzasının (ikinci satır) isteğe bağlı olduğunu unutmayın.

J

Trim algoritma J a, fonksiyonel açıklama:

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

Yani: baştaki ( ) ve ( ) sonundaki ( ) boşluklar arasında #~boşluk olmayan karakterler ( ) için filtre ( ) . ' '&~:+./\*.+./\.

JavaScript

JavaScript 1.8.1'de (Firefox 3.5 ve üstü) ve ECMAScript 5 standardında yerleşik bir kırpma işlevi vardır. Önceki sürümlerde, String nesnesinin prototipine şu şekilde eklenebilir:

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

Perl

Perl 5'in yerleşik bir kırpma işlevi yoktur. Ancak, işlevsellik genellikle normal ifadeler kullanılarak elde edilir .

Örnek:

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

veya:

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

Bu örnekler, orijinal değişkenin değerini değiştirir $string.

Ayrıca Perl için kullanılabilir StripLTSpace içinde String::Stripgelen CPAN .

Ancak, dizelerin sonundaki boşlukları çıkarmak için yaygın olarak kullanılan iki işlev vardır chompve chop:

  • chop bir dizgeden son karakteri kaldırır ve onu döndürür.
  • chompvarsa, bir dizgeden sondaki yeni satır karakter(ler)ini kaldırır. (Yeni satırı oluşturan şey $INPUT_RECORD_SEPARATOR'a bağlıdır).

In Raku , Perl yaklaşan kardeş dil, dizeleri bir var trimyöntemini.

Örnek:

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

Tcl

Tcl string komutu üç alakalı alt komutunu vardır: trim, trimrightve trimleft. Bu komutların her biri için ek bir argüman belirtilebilir: kaldırılacak bir dizi karakteri temsil eden bir dize—varsayılan boşluktur (boşluk, sekme, yeni satır, satır başı).

Sesli harfleri kırpma örneği:

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 , herhangi bir boşluk sırasını (satır sonları dahil) tek bir boşlukla değiştirmenin yanı sıra, baştaki ve sondaki boşlukları ayıran işlevi içerir . normalize-space(string)

Örnek:

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

XSLT 2.0, dize kırpma gerçekleştirmek için başka bir mekanizma sağlayan düzenli ifadeler içerir.

Kırpma için başka bir XSLT tekniği, XPath 2.0 substring()işlevini kullanmaktır .

Referanslar