Сравнение языков программирования |
---|
|
Сравнение отдельных языков
|
Строковые функции используются в языках программирования для управления строкой или запроса информации о строке (некоторые делают и то, и другое).
Большинство языков программирования, имеющих строковый тип данных, будут иметь некоторые строковые функции, хотя в каждом языке могут быть другие низкоуровневые способы обработки строк напрямую. В объектно-ориентированных языках строковые функции часто реализуются как свойства и методы строковых объектов. В функциональных языках и языках, основанных на списках, строка представлена в виде списка (кодов символов), поэтому все процедуры обработки списков могут считаться строковыми функциями. Однако такие языки могут также реализовывать подмножество явных строковых функций.
Для функций, которые управляют строками, современные объектно-ориентированные языки, такие как C # и Java, имеют неизменяемые строки и возвращают копию (во вновь выделенной динамической памяти), в то время как другие, такие как C, манипулируют исходной строкой, если программист не копирует данные в новую строку. См., Например, « Конкатенацию» ниже.
Самый простой пример строковой функции - это length(string)
функция. Эта функция возвращает длину строкового литерала .
- например
length("hello world")
, вернет 11.
Другие языки могут иметь строковые функции с аналогичным или точно таким же синтаксисом или параметрами или результатами. Например, во многих языках функция длины обычно представлена как len (строка) . Приведенный ниже список общих функций призван помочь ограничить эту путаницу.
Общие строковые функции (многоязычный справочник) [ править ]
В этом разделе не процитировать любые источники . Июль 2013 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) ( |
Ниже перечислены строковые функции, общие для многих языков, включая различные используемые имена. Приведенный ниже список общих функций призван помочь программистам найти эквивалентную функцию в языке. Обратите внимание: конкатенация строк и регулярные выражения обрабатываются на отдельных страницах. Заявления в гильеметах («…») необязательны.
CharAt [ править ]
Определение | charAt(string,integer) возвращает характер. |
---|---|
Описание | Возвращает символ по индексу в строке. |
Эквивалент | См. Подстроку длиной 1 символ. |
Формат | Языки | Базовый индекс |
---|---|---|
string[i] | АЛГОЛ 68 , APL , Julia , Pascal , Object Pascal ( Delphi ), Seed7 | 1 |
string[i] | C , C ++ , C # , Cobra , D , FreeBASIC , Go , Python , [1] PHP , Ruby , [1] Windows PowerShell , JavaScript , Ya, APL | 0 |
string{i} | PHP (не рекомендуется в версии 5.3) | 0 |
string(i) | Ада | ≥1 |
Mid(string,i,1) | VB | 1 |
MID$(string,i,1) | БАЗОВЫЙ | 1 |
string.Chars(i) | VB.NET | 0 |
string(i:i) | Фортран | 1 |
string.charAt(i) | Java , JavaScript | 0 |
string.[i] | OCaml , F # | 0 |
string.chars().nth(i) | Ржавчина [2] | 0 |
string[i,1] | Выбрать базовый | 1 |
String.sub (string, i) | Стандартный ML | 0 |
string !! i | Haskell | 0 |
(string-ref string i) | Схема | 0 |
(char string i) | Common Lisp | 0 |
(elt string i) | ISLISP | 0 |
(get string i) | Clojure | 0 |
substr(string, i, 1) | Perl 5 [1] | 0 |
substr(string, i, 1) string.substr(i, 1) | Раку [3] | 0 |
substr(string, i, 1) | PL / I | 1 |
string.at(i) | C ++ (STL) (с проверкой границ) | 0 |
lists:nth(i, string) | Erlang | 1 |
[string characterAtIndex:i] | Objective-C ( NSString * только) | 0 |
string.sub(string, i, i) | Lua [1] | 1 |
string at: i | Smalltalk (с проверкой границ) | 1 |
string index string i | Tcl | 0 |
StringTake[string, {i}] | Mathematica , язык Wolfram Language [1] | 1 |
string@i | Эйфелева | 1 |
string (i:1) | КОБОЛ | 1 |
i⌷string | APL | 0 или 1 |
{Пример на Паскале} var MyStr : string = 'Hello, World' ; MyChar : Char ; begin MyChar : = MyStr [ 2 ] ; // 'е'
# Пример на АЛГОЛе 68 #«Привет, мир» [2]; // 'е'
// Пример на C #include <stdio.h> // для printfchar MyStr [] = "Привет, мир" ; 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)"); // 'Привет (2), мир (2)'
// Пример на C ++ #include <iostream> // для "cout"#include <string.h> // для типа данных "строка"используя пространство имен std ; char MyStr1 [] = "Привет (1), мир (1)" ; строка MyStr2 = "Привет (2), мир (2)" ; cout << "Привет (3), Мир (3)" ; // 'Hello (3), World (3)' cout << MyStr2 [ 6 ]; // '2' cout << MyStr1 . substr ( 5 , 3 ); // '(1)'
// Пример на C # и Ya "Hello, World" [ 2 ]; // 'l'
# Пример в Perl 5 substr ( "Hello, World" , 1 , 1 ); # 'e'
# Примеры на Python "Hello, World" [ 2 ] # 'l' "Hello, World" [ - 3 ] # 'r'
# Пример в Raku "Hello, World" . substr ( 1 , 1 ); # 'e'
'Пример в Visual Basic Mid ( "Hello, World" , 2 , 1 )
'Пример в Visual Basic .NET «Hello, World» . Символы ( 2 ) '"l" c
«Пример на Smalltalk» «Hello, World» по адресу: 2 . "$ e"
// Пример на Rust "Hello, World" . символы (). nth ( 2 ); // Некоторые ('l')
Сравнить (целочисленный результат) [ править ]
Определение | compare(string1,string2) возвращает целое число. |
---|---|
Описание | Сравнивает две строки друг с другом. Если они эквивалентны, возвращается ноль. В противном случае большинство этих подпрограмм вернут положительный или отрицательный результат, соответствующий тому, является ли строка 1 лексикографически большей или меньшей, соответственно, чем строка 2 . Исключениями являются процедуры Scheme и Rexx, которые возвращают индекс первого несоответствия, и Smalltalk, которые отвечают на код сравнения, сообщающий, как получатель сортирует по строковому параметру. |
Формат | Языки |
---|---|
IF string1<string2 THEN -1 ELSE ABS (string1>string2) FI | АЛГОЛ 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 | Перл , Раку |
string1 compare: string2 | Smalltalk ( писк , Pharo ) |
string1 <=> string2 | Рубин |
string1.compare(string2) | C ++ (STL), Swift (фундамент) |
compare(string1, string2) | Рекс , Семя7 |
CompareStr(string1, string2) | Паскаль , Object Pascal ( Delphi ) |
string1.compareTo(string2) | Кобра , Ява |
string1.CompareTo(string2) | VB .NET , C # , F # |
(compare string1 string2) | Clojure |
(string= string1 string2) | Common Lisp |
(string-compare string1 string2 p< p= p>) | Схема (SRFI 13) |
(string= string1 string2) | ISLISP |
compare string1 string2 | OCaml |
String.compare (string1, string2) | Стандартный ML [4] |
compare string1 string2 | Haskell [5] |
[string]::Compare(string1, string2) | Windows PowerShell |
[string1 compare:string2] | Objective-C ( NSString * только) |
LLT(string1,string2) | Фортран [6] |
string1.localeCompare(string2) | JavaScript |
bytes.Compare([]byte(string1), []byte(string2)) | Идти |
string compare ?-nocase? ?-length int? string1 string2 | Tcl |
compare(string1,string2,count) | PL / I [7] |
string1.cmp(string2) | Ржавчина [8] |
# Пример в Perl 5 "hello" cmp "world" ; # возвращает -1
# Пример в Python cmp ( "hello" , "world" ) # возвращает -1
# Примеры в Raku "hello" cmp "world" ; # возвращает Less "world" cmp "hello" ; # возвращает больше "hello" cmp "hello" ; # возвращает То же
/ ** Пример в Rexx * / compare ( "hello" , "world" ) / * возвращает индекс несоответствия: 1 * /
; Пример на схеме ( use-modules ( srfi srfi-13 )) ; возвращает индекс несоответствия: 0 ( строковое сравнение "привет" "мир" значения значения значения )
Сравнить (на основе реляционных операторов, логический результат) [ править ]
Определение | string1 OP string2 ИЛИ возвращает логическое значение.(compare string1 string2) |
---|---|
Описание | Лексикографически сравнивает две строки с помощью реляционного оператора или функции. Возвращен логический результат. |
Формат | Языки |
---|---|
string1 OP string2 , где OP может быть любое из =, <>, <, >, <= и>= | Паскаль , Object Pascal ( Delphi ), OCaml , Seed7 , Standard ML , BASIC , VB , VB .NET , F # |
string1 OP string2 , где OP может быть любое из =, /=, ≠, <, >, <=, ≤ и ≥ ; Также: EQ, NE, LT, LE, GE иGT | АЛГОЛ 68 |
(stringOP? string1 string2) , где OP может быть любое из =, -ci=, <, -ci<, >, -ci>, <=, -ci<=, >= и -ci>= (операторы, начинающиеся с ' -ci ', не чувствительны к регистру) | Схема |
(stringOP string1 string2) , где OP может быть любое из =, -ci=, <>, -ci<>, <, -ci<, >, -ci>, <=, -ci<=, >= и -ci>= (операторы, начинающиеся с ' -ci ', не чувствительны к регистру) | Схема (SRFI 13) |
(stringOP string1 string2) , где OP может быть любым из =, -equal, /=, -not-equal, <, -lessp, >, -greaterp, <=, -not-greaterp, >= и -not-lessp (словесные операторы не чувствительны к регистру) | Common Lisp |
(stringOP string1 string2) , где OP может быть любое из =, /=, <, >, <=, и>= | ISLISP |
string1 OP string2 , где OP может быть любое из =, \=, <, >, <= и>= | Rexx |
string1 OP string2 , где OP может быть любое из =, ¬=, <, >, <=, >=, ¬< и¬> | PL / I |
string1 OP string2 , где OP может быть любое из =, /=, <, >, <= и>= | Ада |
string1 OP string2 , где OP может быть любое из ==, /=, <, >, =< и>= | Erlang |
string1 OP string2 , где OP может быть любое из ==, /=, <, >, <= и>= | Haskell |
string1 OP string2 , где OP может быть любое из иeq, ne, lt, gt, le ge | Перл , Раку |
string1 OP string2 , где OP может быть любое из ==, !=, <, >, <= и>= | C ++ (STL), C # , D , Go , JavaScript , Python , PHP , Ruby , Rust , [9] Swift , Ya. |
string1 OP string2 , где OP может быть любое из -eq, -ceq, -ne, -cne, -lt, -clt, -gt, -cgt, -le, -cle, -ge, и -cge (операторы, начинающиеся с " c ", чувствительны к регистру) | Windows PowerShell |
string1 OP string2 , где OP может быть любое из ==, ~=, <, >, <= и>= | Lua |
string1 OP string2 , где OP может быть любое из =, ~=, <, >, <= и>= | Болтовня |
string1 OP string2 , где OP может быть любое из ==, /=, <, >, <= и >=; Also: .EQ., .NE., .LT., .LE., .GT. и.GE. | Фортран . [10] |
string1 OP string2 где OP может быть любой из =, <>, <, >, <=, >= эквивалентов, а также их словесные эквиваленты | КОБОЛ |
string1 OP string2 где OP может быть любое из ==, <>, <, >, <= и>= | Кобра |
string1 OP string2 доступен в синтаксисе, но означает сравнение указателей, указывающих на строки, а не содержимого строки. Используйте функцию сравнения (целочисленный результат). | C , Java |
string1.METHOD(string2) где METHOD любая из eq , ne , gt , lt , ge ,le | Ржавчина [9] |
% Пример в Erlang «привет» > «мир» . % возвращает false
# Пример в Raku "art" gt "painting" ; # возвращает False "art" lt "painting" ; # возвращает True
# Пример в Windows PowerShell "hello" -gt "world" # возвращает false
;; Пример в Common Lisp ( строка> "искусство" "рисование" ) ; возвращает nil ( string < "art" "painting" ) ; возвращает не ноль
Конкатенация [ править ]
Определение | concatenate(string1,string2) возвращает строку. |
---|---|
Описание | Объединяет (объединяет) две строки друг с другом, возвращая объединенную строку. Обратите внимание, что некоторые языки, такие как C, имеют изменяемые строки, поэтому на самом деле вторая строка добавляется к первой строке, и возвращается измененная строка. |
Формат | Языки |
---|---|
string1 & string2 | Ada , FreeBASIC , Seed7 , BASIC , VB , VB .NET , COBOL (только между литералами) |
strcat(string1, string2) | C , C ++ ( только) [11]char * |
string1 . string2 | Perl , PHP |
string1 + string2 | АЛГОЛ 68 , C ++ (STL), C # , Cobra , FreeBASIC , Go , Pascal , Object Pascal ( Delphi ), Java , JavaScript , Windows PowerShell , Python , Ruby , Rust , [12] F # , Swift , Turing , VB , Ya. |
string1 ~ string2 | Д , Раку |
(string-append string1 string2) | Схема , ISLISP |
(concatenate 'string string1 string2) | Common Lisp |
(str string1 string2) | Clojure |
string1 || string2 | Rexx , SQL , PL / I |
string1 // string2 | Фортран |
string1 ++ string2 | Эрланг , Haskell |
string1 ^ string2 | OCaml , Стандартный ML , F # |
[string1 stringByAppendingString:string2] | Objective-C ( NSString * только) |
string1 .. string2 | Lua |
string1 , string2 | Smalltalk , APL |
string1 string2 | СНОБОЛ |
string1string2 | Оболочка Bash |
string1 <> string2 | Mathematica |
concat строка 1 строка 2 | Tcl |
{Пример на Паскале} 'abc' + 'def' ; // возвращает "abcdef"
// Пример на C # "abc" + "def" ; // возвращает "abcdef"
'Пример в Visual Basic «abc» & «def» ' возвращает «abcdef» «abc» + «def» 'возвращает «abcdef» «abc» & Null ' возвращает «abc» «abc» + Null 'возвращает Null
// Пример в D "abc" ~ "def" ; // возвращает "abcdef"
;; Общий пример lisp ( concatenate 'string "abc" "def" "ghi" ) ; возвращает "abc def ghi"
# Пример в Perl 5 "abc" ~ "def" ; # возвращает "abcdef" "Perl" ~ 5 ; # возвращает "Perl 5"
# Пример в Raku "abc" ~ "def" ; # возвращает "abcdef" "Perl" ~ 6 ; # возвращает "Раку"
Содержит [ править ]
Определение | contains(string,substring) возвращает логическое значение |
---|---|
Описание | Возвращает, содержит ли строка подстроку в качестве подстроки. Это эквивалентно использованию функции « Найти» с последующим обнаружением того, что это не приводит к возникновению состояния отказа, указанного в третьем столбце раздела «Поиск». Однако в некоторых языках есть более простой способ выразить этот тест. |
Связанный | Находить |
Формат | Языки |
---|---|
string_in_string(string, loc int, substring) | АЛГОЛ 68 |
ContainsStr(string, substring) | Object Pascal ( Delphi ) |
strstr(string, substring) != NULL | C , C ++ ( char * только) |
string.Contains(substring) | C # , VB .NET , Windows PowerShell , F # |
string.contains(substring) | Cobra , Java (1.5+), Raku , Rust [13] |
string.indexOf(substring) >= 0 | JavaScript |
strpos(string, substring) !== false | PHP |
pos(string, substring) <> 0 | Семя7 |
substring in string | Кобра , Питон (2.3+) |
string.find(string, substring) ~= nil | Lua |
string.include?(substring) | Рубин |
Data.List.isInfixOf substring string | Haskell (GHC 6.6+) |
string includesSubstring: substring | Smalltalk ( Squeak , Pharo , Smalltalk / X ) |
String.isSubstring substring string | Стандартный ML |
(search substring string) | Common Lisp |
(not (null (string-index substring string))) | ISLISP |
(substring? substring string) | Clojure |
! StringFreeQ[string, substring] | Mathematica |
index(string, substring, startpos)>0 | Фортран, PL / I [14] |
index(string, substring, occurrence)>0 | Выбрать базовый |
strings.Contains(string, substring) | Идти |
string.find(substring) != string::npos | C ++ |
[string containsString:substring] | Objective-C ( NSString * только iOS 8 + / OS X 10.10+) |
string.rangeOfString(substring) != nil | Свифт (фундамент) |
∨/substring⍷string | APL |
¢ Пример на АЛГОЛЕ 68 ¢строка в строке ("e", loc int , "Hello mate"); ¢ возвращает истину ¢строка в строке ("z", loc int , "word"); ¢ возвращает false ¢
// Пример на C # «Привет, дружище» . Содержит ( «е» ); // возвращает истинное "слово" . Содержит ( "z" ); // возвращает false
# Пример в Python "e" в "Hello mate" # возвращает true "z" в "word" # возвращает false
# Пример в Раку "Доброе утро!" . contains ( 'z' ) # возвращает False "¡Buenos días!" . содержит ( 'í' ); # возвращает True
«Пример на Smalltalk» 'Hello mate' includesSubstring: 'e' "возвращает true" ' word ' includesSubstring: 'z' "возвращает false"
Равенство [ править ]
Проверяет, равны ли две строки. См. Также #Compare и #Compare . Обратите внимание, что выполнение проверок равенства с помощью универсального метода сравнения с целочисленным результатом не только сбивает с толку программиста, но часто является значительно более дорогой операцией; это особенно верно при использовании « C-струн ».
Формат | Языки |
---|---|
string1 == string2 | Python , C ++ (STL), C # , Cobra , Go , JavaScript (сходство), PHP (сходство), Ruby , Rust , [9] Erlang , Haskell , Lua , D , Mathematica , Swift , Ya. |
string1 === string2 | JavaScript , PHP |
string1 == string2 or | Фортран |
strcmp(string1, string2) == 0 | C |
(string=? string1 string2) | Схема |
(string= string1 string2) | Общий Лисп , ISLISP |
string1 = string2 | АЛГОЛ 68 , Ада , Object Pascal ( Delphi ), OCaml , Pascal , Rexx , Seed7 , Standard ML , BASIC , VB , VB .NET , F # , Smalltalk , PL / I , COBOL |
test string1 = string2, or | Bourne Shell |
string1 eq string2 | Перл , Раку |
string1.equals(string2) | Кобра , Ява |
string1.Equals(string2) | C # |
string1 -eq string2, or | Windows PowerShell |
[string1 isEqualToString:string2], or | Objective-C ( NSString * только) |
string1 ≡ string2 | APL |
string1.eq(string2) | Ржавчина [9] |
// Пример на C # "hello" == "world" // возвращает false
'Пример в Visual Basic "hello" = "world" ' возвращает false
# Примеры в Perl 5 'hello' eq 'world' # возвращает 0 'hello' eq 'hello' # возвращает 1
# Примеры в Raku 'hello' eq 'world' # возвращает False 'hello' eq 'hello' # возвращает True
# Пример в Windows PowerShell "hello" -eq "world" # возвращает false
⍝ Пример в APL 'hello' ≡ 'world' ⍝ возвращает 0
Найдите [ редактировать ]
Определение | find(string,substring) возвращает целое число |
---|---|
Описание | Возвращает позицию начала первого вхождения подстроки в строку . Если подстрока не найдена, большинство этих подпрограмм возвращают недопустимое значение индекса - -1, если индексы основаны на 0, 0, если они основаны на 1, или какое-то значение, которое должно интерпретироваться как логическое FALSE. |
Связанный | instrrev |
Формат | Языки | Если не найден |
---|---|---|
string in string(substring, pos, string[startpos:]) | АЛГОЛ 68 | возвращает BOOL: TRUE или FALSE и позицию в REF INT pos. |
InStr(«startpos,»string,substring) | VB (позиции начинаются с 1) | возвращает 0 |
INSTR$(string,substring) | BASIC (позиции начинаются с 1) | возвращает 0 |
index(string,substring) | AWK | возвращает 0 |
index(string,substring«,startpos») | Perl 5 | возвращает −1 |
index(string,substring«,startpos») string.index(substring,«,startpos») | Раку | возвращает Nil |
instr(«startpos,»string,substring) | FreeBASIC | возвращает 0 |
strpos(string,substring«,startpos») | PHP | возвращает FALSE |
locate(string, substring) | Ingres | возвращает длину строки + 1 |
strstr(string, substring) | C , C ++ ( только, возвращает указатель на первый символ)char * | возвращает NULL |
std.string.indexOf(string, substring) | D | возвращает −1 |
pos(string, substring«, startpos») | Семя7 | возвращает 0 |
strings.Index(string, substring) | Идти | возвращает −1 |
pos(substring, string) | Паскаль , Object Pascal ( Delphi ) | возвращает 0 |
pos(substring, string«,startpos») | Rexx | возвращает 0 |
string.find(substring«,startpos») | C ++ (STL) | возвращает std :: string :: npos |
string.find(substring«,startpos«,endpos»») | Python | возвращает −1 |
string.index(substring«,startpos«,endpos»») | вызывает ValueError | |
string.index(substring«,startpos») | Рубин | возвращает ноль |
string.indexOf(substring«,startpos») | Java , JavaScript | возвращает −1 |
string.IndexOf(substring«,startpos«, charcount»») | VB .NET , C # , Windows PowerShell , F # | возвращает −1 |
string:str(string, substring) | Erlang | возвращает 0 |
(string-contains string substring) | Схема (SRFI 13) | возвращает #f |
(search substring string) | Common Lisp | возвращает NIL |
(string-index substring string) | ISLISP | возвращается nil |
List.findIndex (List.isPrefixOf substring) (List.tails string) | Haskell (возвращает только индекс ) | ничего не возвращает |
Str.search_forward (Str.regexp_string substring) string 0 | OCaml | вызывает Not_found |
Substring.size (#1 (Substring.position substring (Substring.full string))) | Стандартный ML | возвращает длину строки |
[string rangeOfString:substring].location | Objective-C ( NSString * только) | возвращает NSNotFound |
string.find(string, substring) | Lua | возвращает ноль |
string indexOfSubCollection: substring startingAt: startpos ifAbsent: aBlock | Smalltalk ( писк , Pharo ) | оценить aBlock, который является закрытием блока (или любым значением понимания объекта), возвращает 0 |
startpos = INDEX(string, substring «,back» «, kind») | Фортран | возвращает 0, если подстроки нет в строке; возвращает LEN (строка) +1, если подстрока пуста |
POSITION(substring IN string) | SQL | возвращает 0 (позиции начинаются с 1) |
index(string, substring, startpos ) | PL / I [14] | возвращает 0 (позиции начинаются с 1) |
index(string, substring, occurrence ) | Выбрать базовый | возвращает 0, если вхождения подстроки нет в строке; (позиции начинаются с 1) |
string.indexOf(substring«,startpos«, charcount»») | Кобра | возвращает −1 |
string first substring string startpos | Tcl | возвращает −1 |
(substring⍷string)⍳1 | APL | возвращает 1 + последняя позиция в строке |
string.find(substring) | Ржавчина [15] | возвращается None |
; Примеры в Common Lisp ( ищите "e" "Hello mate" ) ; возвращает 1 ( поиск «z» «слово» ) ; возвращает NIL
// Примеры на C # "Hello mate" . IndexOf ( «е» ); // возвращает 1 «Привет, дружище» . IndexOf ( «е» , 4 ); // возвращает 9 "слово" . IndexOf ( "z" ); // возвращает -1
# Примеры в раку "Привет!" . index ( 'e' ) # возвращает 1 "Здравствуйте!" . index ( 'z' ) # возвращает Nil
; Примеры на схеме ( use-modules ( srfi srfi-13 )) ( string-contains «Hello mate» «e» ) ; возвращает 1 ( строка содержит "слово" "z" ) ; возвращает #f
«Примеры в Visual Basic InStr ( « Hello mate » , « e » ) » возвращает 2 InStr ( 5 , «Hello mate» , «e» ) »возвращает 10 InStr ( « word » , « z » ) » возвращает 0
«Примеры в Smalltalk» 'Hello mate' indexOfSubCollection: 'ate' "возвращает 8" ' Hello mate ' indexOfSubCollection: 'late' "возвращает 0" I ' Hello mate ' indexOfSubCollection: 'late' ifAbsent: [ 99 ] "возвращает 99" ' Hello mate ' indexOfSubCollection: 'late' ifAbsent: [ собственная ошибка ] "вызывает исключение"
Найти персонажа [ править ]
Определение | find_character(string,char) возвращает целое число |
---|---|
Описание | Возвращает позицию начала первого вхождения символа char в строке . Если символ не найден, большинство этих подпрограмм возвращают недопустимое значение индекса - -1, если индексы основаны на 0, 0, если они основаны на 1, или какое-то значение, которое должно интерпретироваться как логическое FALSE. Это может быть выполнено как частный случай #Find со строкой из одного символа; но на многих языках может быть проще или эффективнее найти только один символ. Кроме того, во многих языках символы и строки относятся к разным типам, поэтому такая функция удобна. |
Связанный | найти |
Формат | Языки | Если не найден |
---|---|---|
char in string(char, pos, string[startpos:]) | АЛГОЛ 68 | возвращает BOOL: TRUE или FALSE и позицию в REF INT pos. |
instr(string, any char«,startpos») (char, может содержать более одного символа, и в этом случае возвращается позиция первого появления любого из них.) | FreeBASIC | возвращает 0 |
strchr(string,char) | C , C ++ ( только, возвращает указатель на символ)char * | возвращает NULL |
std.string.find(string, dchar) | D | возвращает −1 |
string.find(char«,startpos») | C ++ (STL) | возвращает std :: string :: npos |
pos(string, char«, startpos») | Семя7 | возвращает 0 |
strings.IndexRune(string,char) | Идти | возвращает −1 |
string.indexOf(char«,startpos») | Java , JavaScript | возвращает −1 |
string.IndexOf(char«,startpos«, charcount»») | VB .NET , C # , Windows PowerShell , F # | возвращает −1 |
(position char string) | Common Lisp | возвращает NIL |
(char-index char string) | ISLISP | возвращается nil |
List.elemIndex char string | Haskell (возвращается )Just index | возвращается Nothing |
String.index string char | OCaml | вызывает Not_found |
position = SCAN (string, set «, back» «, kind») or | Фортран | возвращает ноль |
string indexOf: char ifAbsent: aBlock | Болтовня | оценки , aBlock который является BlockClosure (или какой - либо объект понимания значения) возвращает 0 возвращает true илиfalse |
index(string, char, startpos ) | PL / I [16] | возвращает 0 (позиции начинаются с 1) |
string.index(?char) | Рубин | возвращает ноль |
strpos(string,char,startpos) | PHP | возвращается false |
string.indexOf(char«,startpos«, charcount»») | Кобра | возвращает −1 |
string⍳char | APL | возвращает 1 + последняя позиция в строке |
string.find(substring) | Ржавчина [15] | возвращается None |
// Примеры на C # "Hello mate" . IndexOf ( 'е' ); // возвращает 1 «слово» . IndexOf ( 'z' ) // возвращает -1
; Примеры в Common Lisp ( позиция # \ e "Привет, дружище" ) ; возвращает 1 ( позиция # \ z "слово" ) ; возвращает NIL
^ a Для данного набора символов SCAN возвращает позицию первого найденного символа [17], а VERIFY возвращает позицию первого символа, который не принадлежит набору. [18]
Форматировать [ редактировать ]
Определение | format(formatstring, items) возвращает строку |
---|---|
Описание | Возвращает форматированное строковое представление одного или нескольких элементов. |
Формат | Языки | Синтаксис строки формата |
---|---|---|
associate(file, string); putf(file, $formatstring$, items) | АЛГОЛ 68 | АЛГОЛ |
Format(item, formatstring) | VB |
|
sprintf(formatstring, items) | Perl , PHP , Raku , Ruby | C |
item.fmt(formatstring) | Раку | C |
io_lib:format(formatstring, items) | Erlang |
|
sprintf(outputstring, formatstring, items) | C | C |
std.string.format(formatstring, items) | D | C |
Format(formatstring, items) | Object Pascal ( Delphi ) |
|
fmt.Sprintf(formatstring, items) | Идти | C |
printf -v outputstring formatstring items | Оболочка Bash | C |
formatstring % (items) | Python , Ruby | C |
formatstring.format(items) | Python | .СЕТЬ |
Printf.sprintf formatstring [19] items | OCaml , F # | C |
Text.Printf.printf formatstring items | Haskell (GHC) | C |
formatstring printf: items | Болтовня | C |
String.format(formatstring, items) | Ява | C |
String.Format(formatstring, items) | VB .NET , C # , F # | .СЕТЬ |
(format formatstring items) | Схема (SRFI 28) | Лисп |
(format nil formatstring items) | Common Lisp | Лисп |
(format formatstring items) | Clojure | Лисп |
formatstring -f items | Windows PowerShell | .СЕТЬ |
[NSString stringWithFormat:formatstring, items] | Objective-C ( NSString * только) | C |
String(format:formatstring, items) | Свифт (фундамент) | C |
string.format(formatstring, items) | Lua | C |
WRITE (outputstring, formatstring) items | Фортран | Фортран |
put string(string) edit(items)(format) | PL / I | PL / I (аналог Фортрана) |
String.format(formatstring, items) | Кобра | .СЕТЬ |
format formatstring items | Tcl | C |
formatnumbers ⍕ items или же formatstring ⎕FMT items | APL | APL |
format!(formatstring, items) | Ржавчина [20] | Python |
// Пример в C # String . Формат ( «Мои {0} затраты {1: C2}» , «ручка» , 19,99 ); // возвращает "Моя ручка стоит 19,99 доллара"
// Пример в формате Object Pascal (Delphi) ( 'Мой% s стоит $% 2f' , [ 'pen' , 1 9,99 ]) ; // возвращает "Моя ручка стоит 19,99 доллара"
// Пример в Java String . формат ( «Мой% s стоит $% 2f» , «ручка» , 19,99 ); // возвращает "Моя ручка стоит 19,99 доллара"
# Примеры в Raku sprintf "My% s cost \ $%. 2f" , "pen" , 19,99 ; # возвращает "Моя ручка стоит 19,99 доллара" 1 . fmt ( "% 04d" ); # возвращает "0001"
# Пример на Python "Мой % s стоит $ % .2f " % ( "pen" , 19,99 ); # возвращает «Моя ручка стоит 19,99 долларов США» «Моя {0} стоит {1: .2f} долларов США » . формат ( «ручка» , 19,99 ); # возвращает "Моя ручка стоит 19,99 доллара"
; Пример на схеме ( формат «My ~ a стоит ~ 1,2F», «ручка» 19,99 ) ; возвращает "Моя ручка стоит 19,99 доллара"
/ * пример в PL / I * /положить строку (some_string) edit ('My', 'pen', 'cost', 19.99) (a, a, a, p '$$$ V.99')/ * возвращает «Моя ручка стоит 19,99 долларов США» * /
Неравенство [ править ]
Проверяет, не равны ли две строки. См. Также # Равенство .
Формат | Языки |
---|---|
string1 ne string2, or string1 NE string2 | АЛГОЛ 68 - примечание: оператор « ne » буквально выделен жирным шрифтом. |
string1 /= string2 | АЛГОЛ 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 (устарело) |
string1 # string2 | BASIC (некоторые реализации) |
string1 ne string2 | Перл , Раку |
(string<> string1 string2) | Схема (SRFI 13) |
(string/= string1 string2) | Common Lisp |
(string/= string1 string2) | ISLISP |
(not= string1 string2) | Clojure |
string1 != string2 | C ++ (STL), C # , Go , JavaScript (не похоже), PHP (не похоже), Python , Ruby , Rust , [9] Swift , D , Mathematica |
string1 !== string2 | JavaScript , PHP |
string1 \= string2 | Rexx |
string1 ¬= string2 | PL / I |
test string1 != string2, or | Bourne Shell |
string1 -ne string2, or | Windows PowerShell |
string1 ~= string2 | Lua , Smalltalk |
string1 ≢ string2 | APL |
string1.ne(string2) | Ржавчина [9] |
// Пример на C # "hello" ! = "World" // возвращает true
'Пример в Visual Basic "hello" <> "world" ' возвращает значение true
;; Пример на Clojure ( not = "hello" "world" ) ; ⇒ верно
# Пример в Perl 5 'hello' ne 'world' # возвращает 1
# Пример в Raku 'hello' ne 'world' # возвращает True
# Пример в Windows PowerShell "hello" -ne "world" # возвращает true
индекс [ править ]
см. # Найти
indexof [ править ]
см. # Найти
instr [ править ]
см. # Найти
instrrev [ править ]
см. #rfind
присоединиться [ редактировать ]
Определение | join(separator, list_of_strings) возвращает список строк, соединенных разделителем |
---|---|
Описание | Объединяет список строк в новую строку с разделительной строкой между каждой из подстрок. Противоположность расколу . |
Связанный | спринт |
Формат | Языки |
---|---|
std.string.join(array_of_strings, separator) | D |
string:join(list_of_strings, separator) | Erlang |
join(separator, list_of_strings) | Perl , PHP , Raku |
implode(separator, array_of_strings) | PHP |
separator.join(sequence_of_strings) | Python , Swift 1.x |
array_of_strings.join(separator) | Ruby , JavaScript , Raku , Rust [21] |
(string-join array_of_strings separator) | Схема (SRFI 13) |
(format nil "~{~a~^separator~}" array_of_strings) | Common Lisp |
(clojure.string/join separator list_of_strings) | Clojure |
strings.Join(array_of_strings, separator) | Идти |
join(array_of_strings, separator) | Семя7 |
String.concat separator list_of_strings | OCaml |
String.concatWith separator list_of_strings | Стандартный ML |
Data.List.intercalate separator list_of_strings | Haskell (GHC 6.8+) |
Join(array_of_strings, separator) | VB |
String.Join(separator, array_of_strings) | VB .NET , C # , F # |
String.join(separator, array_of_strings) | Java 8+ |
&{$OFS=$separator; "$array_of_strings"}, or | Windows PowerShell |
[array_of_strings componentsJoinedByString:separator] | Objective-C ( NSString * только) |
table.concat(table_of_strings, separator) | Lua |
{|String streamContents: [ :stream | collectionOfAnything asStringOn: stream delimiter: separator ] | Smalltalk ( писк , Pharo ) |
array_of_strings.join(separator«, final_separator») | Кобра |
sequence_of_strings.joinWithSeparator(separator) | Swift 2.x |
1↓∊separator,¨list_of_strings | APL |
// Пример в C # String . Join ( "-" , { "a" , "b" , "c" }) // "abc"
"Пример на Smalltalk" # ( 'a' 'b' 'c' ) joinUsing: '-' "'abc'"
# Пример в Perl 5 join ( '-' , ( 'a' , 'b' , 'c' )); # 'ab-c'
# Пример в Raku <ab c> . присоединиться ( '-' ); # 'ab-c'
# Пример на Python "-" . join ([ "a" , "b" , "c" ]) # 'ab-c'
# Пример на Ruby [ "a" , "b" , "c" ]. присоединиться ( "-" ) # 'ab-c'
; Пример на схеме ( use-modules ( srfi srfi-13 )) ( string-join ' ( "a" "b" "c" ) "-" ) ; "abc"
lastindexof [ править ]
см. #rfind
осталось [ редактировать ]
Определение | left(string,n) возвращает строку |
---|---|
Описание | Возвращает левую n часть строки. Если n больше длины строки, то большинство реализаций возвращают всю строку (существуют исключения - см. Примеры кода). Обратите внимание, что для кодировок переменной длины, таких как UTF-8 , UTF-16 или Shift-JIS , может потребоваться удалить позиции строки в конце, чтобы избежать недопустимых строк. |
Формат | Языки |
---|---|
string (string'First .. string'First + n - 1) | Ада |
substr(string, 0, n) | AWK (изменяет строку), Perl , PHP , Raku |
LEFT$(string,n) | БАЗОВЫЙ , VB |
left(string,n) | VB , FreeBASIC , Ingres , Pick Basic |
strncpy(string2, string, n) | Стандартная библиотека C |
string.substr(0,n) | C ++ (STL), Raku |
[string substringToIndex:n] | Objective-C ( NSString * только) |
(apply str (take n string)) | Clojure |
string[0 .. n] | D [22] |
string:substr(string, start, length) | Erlang |
(subseq string 0 n) | Common Lisp |
string[:n] | Кобра , Go , Python |
left(string,n «,padchar») | Рекс , Эрланг |
string[0, n] | Рубин |
string[1, n] | Выбрать базовый |
string[ .. n] | Семя7 |
string.Substring(0,n) | VB .NET , C # , Windows PowerShell , F # |
leftstr(string, n) | Паскаль , Object Pascal ( Delphi ) |
copy (string,1,n) | Турбо Паскаль |
string.substring(0,n) | Java , [23] JavaScript |
(string-take string n) | Схема (SRFI 13) |
take n string | Haskell |
String.extract (string, n, NONE) | Стандартный ML |
String.sub string 0 n | OCaml [24] |
string.[..n] | F # |
string.sub(string, 1, n) | Lua |
string first: n | Smalltalk ( писк , Pharo ) |
string(:n) | Фортран |
StringTake[string, n] | Mathematica [25] |
string («FUNCTION» LENGTH(string) - n:n) | КОБОЛ |
string.substring(0, n) | Кобра |
n↑string. | APL |
string[0..n] string[..n] string.get(0..n) string.get(..n) | Ржавчина [26] |
# Пример на языке Raku "Привет, там!" . substr ( 0 , 6 ); # возвращает "Привет,"
/ * Примеры в Rexx * /left ( "abcde" , 3 ) / * возвращает "abc" * / left ( "abcde" , 8 ) / * возвращает "abcde" * / left ( "abcde" , 8 , "*" ) / * возвращает "abcde ***" * /
; Примеры на схеме ( use-modules ( srfi srfi-13 )) ( string-take "abcde" , 3 ) ; возвращает «abc» ( взятие строки «abcde» , 8 ) ; ошибка
' Примеры в Visual Basic Left ( "sandroguidi" , 3 ) ' возвращает "san" Left ( "sandroguidi" , 100 ) ' возвращает "sandroguidi"
// Примеры в Ya "abcde" [ 0..3 ] // возвращает "abc" "abcde" [ 0..8 ] // возвращает "abcde"
len [ править ]
см. #length
длина [ править ]
Определение | length(string) возвращает целое число |
---|---|
Описание | Возвращает длину строки (не считая нулевого признака конца или любой другой внутренней структурной информации строки). Пустая строка возвращает длину 0. |
Формат | Возврат | Языки |
---|---|---|
string'Length |
| Ада |
UPB string |
| АЛГОЛ 68 |
length(string) |
| Ingres , Perl 5 , Pascal , Object Pascal ( Delphi ), Rexx , Seed7 , SQL , PL / I |
len(string) |
| БЕЙСИК , FreeBASIC , Python , Go , Pick Basic |
length(string), string:len(string) |
| Erlang |
Len(string) |
| VB , Pick Basic |
string.Length | Количество кодовых единиц UTF-16 | VB .NET , C # , Windows PowerShell , F # |
chars(string) string.chars | Количество графем (NFG) | Раку |
codes(string) string.codes | Количество кодовых точек Unicode | Раку |
string.size OR string.length | Количество байтов [27] | Рубин |
strlen(string) | Количество байтов | C , PHP |
string.length() |
| C ++ (STL) |
string.length |
| Кобра , D , JavaScript |
string.length() | Количество кодовых единиц UTF-16 | Ява |
(string-length string) |
| Схема |
(length string) |
| Общий Лисп , ISLISP |
(count string) |
| Clojure |
String.length string |
| OCaml |
size string |
| Стандартный ML |
length string | Количество кодовых точек Unicode | Haskell |
string.length | Количество кодовых единиц UTF-16 | Objective-C ( NSString * только) |
string.characters.count | Количество символов | Swift (2.x) |
count(string) | Количество символов | Стремительный (1.2) |
countElements(string) | Количество символов | Swift (1.0–1.1) |
string.len(string) |
| Lua |
string size |
| Болтовня |
LEN(string), or LEN_TRIM(string) |
| Фортран |
StringLength[string] |
| Mathematica |
Length(string) или же
| количество байтов как $int+ | Я |
«FUNCTION» LENGTH(string) или же
| количество символов и количество байтов соответственно | КОБОЛ |
string length string | десятичная строка, дающая количество символов | Tcl |
≢ string | APL | |
string.len() | Количество байтов | Ржавчина [28] |
string.chars().count() | Количество кодовых точек Unicode | Ржавчина [29] |
// Примеры на C # "привет" . Длина ; // возвращает 5 "" . Длина ; // возвращает 0
# Примеры в строке Erlang : len ( "привет" ). % возвращает 5 строк : len ( "" ). % возвращает 0
# Примеры в Perl 5 length ( "привет" ); # возвращает 5 length ( "" ); # возвращает 0
# Примеры в раку "🏳️🌈" . символы ; символы «🏳️🌈» ; # оба возвращают 1 "🏳️🌈" . коды ; коды «🏳️🌈» ; # оба возвращают 4 "" . символы ; символы "" ; # оба возвращают 0 "" . коды ; коды "" ; # оба возвращают 0
'Примеры в Visual Basic Len ( "hello" ) ' возвращает 5 Len ( "" ) 'возвращает 0
// Примеры в Objective-C [ @ "hello" Length ] // возвращает 5 [ @ "" Length ] // возвращает 0
- Примеры в Lua ( "привет" ): len () - возвращает 5 # "" - возвращает 0
найти [ редактировать ]
см. # Найти
Строчные [ править ]
Определение | lowercase(string) возвращает строку |
---|---|
Описание | Возвращает строку в нижнем регистре. |
Формат | Языки |
---|---|
LCase(string) | VB |
lcase(string) | FreeBASIC |
lc(string) | Перл , Раку |
string.lc | Раку |
tolower(char) | C [30] |
std.string.toLower(string) | D |
transform(string.begin(), string.end(), result.begin(), ::tolower) [31] | C ++ [32] |
lowercase(string) | Object Pascal ( Delphi ) |
strtolower(string) | PHP |
lower(string) | Семя7 |
echo "string" | tr 'A-Z' 'a-z' | Unix |
string.lower() | Python |
downcase(string) | Выбрать базовый |
string.downcase | Рубин [33] |
strings.ToLower(string) | Идти |
(string-downcase string) | Схема (R6RS), Common Lisp |
(lower-case string) | Clojure |
String.lowercase string | OCaml |
String.map Char.toLower string | Стандартный 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 * только), Swift (Foundation) |
string.lower(string) | Lua |
string asLowercase | Болтовня |
LOWER(string) | SQL |
lowercase(string) | PL / I [7] |
ToLowerCase[string] | Mathematica |
«FUNCTION» LOWER-CASE(string) | КОБОЛ |
string.toLower | Кобра |
string tolower string | Tcl |
string.to_lowercase() | Ржавчина [34] |
// Пример на C # "Wiki значит быстро?" . ToLower (); // "вики значит быстро?"
; Пример на схеме ( use-modules ( srfi srfi-13 )) ( строка-вниз «Wiki значит быстро?» ) ; "вики значит быстро?"
/ * Пример на C * / #include <ctype.h>#include <stdio.h>int main ( void ) { char string [] = "Wiki значит быстро?" ; int i ; for ( i = 0 ; i < sizeof ( string ) - 1 ; ++ i ) { / * преобразовать символы на месте, один за другим * / string [ i ] = tolower ( string [ i ]); } put ( строка ); / * "вики значит быстро?" * / return 0 ; }
# Пример в Raku "Вики значит быстро?" . lc ; # "вики значит быстро?"
середина [ править ]
см. #substring
раздел [ править ]
Определение | <string> .partition ( separator ) возвращает подстроку перед разделителем; разделитель; затем подстрока после разделителя. |
---|---|
Описание | Разделяет данную строку разделителем и возвращает три подстроки, которые вместе составляют оригинал. |
Формат | Языки | Комментарии |
---|---|---|
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 ) | Раку | Разделитель не обязательно должен быть регулярным выражением |
# Примеры в Python "Спам-яйца, спам, спам и ветчина" . partition ( 'спам' ) # ('Спам-яйца', 'спам', 'спам и ветчина') «Спам-яйца, спам, спам и ветчина» . partition ( 'X' ) # ('Спам-яйца, спам, спам и ветчина', "", "")
# Примеры в Perl 5 / Raku split / (спам) / , «Спам-яйца, спам и ветчина» , 2 ; # ('Спам-яйца', 'спам', 'спам и ветчина'); split / (X) / , «Спам, яйца, спам, спам и ветчина» , 2 ; # ('Спам-яйца, спам, спам и ветчина');
заменить [ редактировать ]
Определение | replace(string, find, replace) возвращает строку |
---|---|
Описание | Возвращает строку с найденными вхождениями, замененными на замену . |
Формат | Языки |
---|---|
changestr(find, string, replace) | Rexx |
std.string.replace(string, find, replace) | D |
Replace(string, find, replace) | VB |
replace(string, find, replace) | Семя7 |
change(string, find, replace) | Выбрать базовый |
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 [35] |
string.replaceAll(find_regex, replace)[36] | Ява |
string.gsub(find, replace) | Рубин |
string =~ s/find_regex/replace/g[36] | Perl 5 |
string.subst(find, replace, :g) | Раку |
string.replace(find, replace, "g") [37] or | JavaScript |
echo "string" | sed 's/find_regex/replace/g'[36] | Unix |
string.replace(find, replace), or | Windows PowerShell |
Str.global_replace (Str.regexp_string find) replace string | OCaml |
[string stringByReplacingOccurrencesOfString:find withString:replace] | Objective-C ( NSString * только) |
string.stringByReplacingOccurrencesOfString(find, withString:replace) | Свифт (фундамент) |
string.gsub(string, find, replace) | Lua |
string copyReplaceAll: find with: replace | Smalltalk ( писк , 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 | КОБОЛ |
find_regex ⎕R replace_regex ⊢ string | APL |
// Примеры на C # "effffff" . Заменить ( «ф» , «прыжок» ); // возвращает «ejumpjumpjumpjumpjumpjump» «бла» . Заменить ( "z" , "y" ); // возвращает "бла"
// Примеры на Java "effffff" . replace ( «ф» , «прыжок» ); // возвращает «ejumpjumpjumpjumpjumpjump» «effffff» . replaceAll ( "е *" , "прыгать" ); // возвращает "ejump"
// Примеры на раку "effffff" . субст ( "F" , "скачок" ,: г ); # возвращает "ejumpjumpjumpjumpjumpjump" "blah" . субст ( "г" , "у" ,: г ); # возвращает "бла"
"Примеры в Visual Basic Replace ( " effffff " , " f " , " jump " ) " возвращает "ejumpjumpjumpjumpjumpjump" Replace ( "blah" , "z" , "y" ) 'возвращает "blah"
# Примеры в Windows PowerShell «effffff» -replace «f» , «jump» # возвращает «ejumpjumpjumpjumpjumpjump» «effffff» -replace «f *» , «jump» # возвращает «ejump»
обратный [ править ]
Определение | reverse(string) |
---|---|
Описание | Меняет порядок символов в строке на обратный. |
Формат | Языки |
---|---|
reverse string | Perl 5 , Haskell |
flip string string.flip | Раку |
lists:reverse(string) | Erlang |
strrev(string) | PHP |
string[::-1] | Python |
(string-reverse string) | Схема (SRFI 13) |
(reverse string) | Common Lisp |
string.reverse | Ruby , D (изменяет строку) |
new StringBuilder(string).reverse().toString() | Ява |
std::reverse(string.begin(), string.end()); | C ++ ( std::string только, изменяет строку) |
StrReverse(string) | VB |
string.Reverse().ToString() | VB .NET , C # |
implode (rev (explode string)) | Стандартный ML |
string.split("").reverse().join("") | JavaScript |
string.reverse(string) | Lua |
string reverse | Болтовня |
StringReverse[string] | Mathematica |
reverse(string) | PL / I |
«FUNCTION» REVERSE(string) | КОБОЛ |
string.toCharArray.toList.reversed.join() | Кобра |
String(string.characters.reverse()) | Swift (2.x) |
String(reverse(string)) | Стремительный (1.2) |
string reverse string | Tcl |
⌽string | APL |
string.chars().rev().collect::<String>() | Ржавчина [38] |
"Пример на Smalltalk" 'hello' в обратном порядке "возвращает 'olleh'"
# Пример в Perl 5 обратное "hello" # возвращает "olleh"
# Пример в Raku "привет" . flip # возвращает "olleh"
# Пример в Python "hello" [:: - 1 ] # возвращает "olleh"
; Пример на схеме ( use-modules ( srfi srfi-13 )) ( обратная строка "привет" ) ; возвращает "olleh"
rfind [ править ]
Определение | rfind(string,substring) возвращает целое число |
---|---|
Описание | Возвращает позицию начала последнего вхождения подстроки в строку . Если подстрока не найдена, большинство этих подпрограмм возвращают недопустимое значение индекса - -1, если индексы основаны на 0, 0, если они основаны на 1, или какое-то значение, которое должно интерпретироваться как логическое FALSE. |
Связанный | instr |
Формат | Языки | Если не найден |
---|---|---|
InStrRev(«startpos,» string,substring) | VB | возвращает 0 |
instrrev(«startpos,» string,substring) | FreeBASIC | возвращает 0 |
rindex(string,substring«,startpos») | Perl 5 | возвращает −1 |
rindex(string,substring«,startpos») string.rindex(substring«,startpos») | Раку | возвращает Nil |
strrpos(string,substring«,startpos») | PHP | возвращает FALSE |
string.rfind(substring«,startpos») | C ++ (STL) | возвращает std :: string :: npos |
std.string.rfind(string, substring) | D | возвращает −1 |
string.rfind(substring«,startpos«, endpos»») | Python | возвращает −1 |
string.rindex(substring«,startpos«, endpos»») | вызывает ValueError | |
rpos(string, substring«,startpos») | Семя7 | возвращает 0 |
string.rindex(substring«,startpos») | Рубин | возвращает ноль |
strings.LastIndex(string, substring) | Идти | возвращает −1 |
string.lastIndexOf(substring«,startpos») | Java , JavaScript | возвращает −1 |
string.LastIndexOf(substring«,startpos«, charcount»») | VB .NET , C # , Windows PowerShell , F # | возвращает −1 |
(search substring string :from-end t) | Common Lisp | возвращает NIL |
[string rangeOfString:substring options:NSBackwardsSearch].location | Objective-C ( NSString * только) | возвращает NSNotFound |
Str.search_backward (Str.regexp_string substring) string (Str.length string - 1) | OCaml | вызывает Not_found |
string.match(string, '.*()'..substring) | Lua | возвращает ноль |
Ada.Strings.Unbounded.Index(Source => string, Pattern => substring, | Ада | возвращает 0 |
string.lastIndexOf(substring«,startpos«, charcount»») | Кобра | возвращает −1 |
string lastIndexOfString:substring | Болтовня | возвращает 0 |
string last substring string startpos | Tcl | возвращает −1 |
(⌽<\⌽substring⍷'string')⍳1 | APL | возвращает −1 |
string.rfind(substring) | Ржавчина [39] | возвращается None |
; Примеры в Common Lisp ( ищите "e", "Hello mate" : from-end t ) ; возвращает 9 ( поиск "z" "word" : from-end t ) ; возвращает NIL
// Примеры на C # "Hello mate" . LastIndexOf ( "е" ); // возвращает 9 «Привет, дружище» . LastIndexOf ( "е" , 4 ); // возвращает 1 «слово» . LastIndexOf ( "z" ); // возвращает -1
# Примеры в Perl 5 rindex ( "Hello mate" , "e" ); # возвращает 9 rindex ( "Привет, дружище " , "е" , 4 ); # возвращает 1 rindex ( "слово" , "z" ); # возвращает -1
# Примеры в Raku "Hello mate" . rindex ( «е» ); # возвращает 9 «Привет, дружище» . rindex ( «е» , 4 ); # возвращает 1 "слово" . rindex ( 'z' ); # возвращает Nil
«Примеры в Visual Basic InStrRev ( « Hello mate » , « e » ) » возвращает 10 InStrRev ( 5 , «Hello mate» , «e» ) »возвращает 2 InStrRev ( « word » , « z » ) » возвращает 0
право [ править ]
Определение | right(string,n) возвращает строку |
---|---|
Описание | Возвращает правую n часть строки. Если n больше длины строки, то большинство реализаций возвращают всю строку (существуют исключения - см. Примеры кода). |
Формат | Языки |
---|---|
string (string'Last - n + 1 .. string'Last) | Ада |
Right(string,n) | VB |
RIGHT$(string,n) | БАЗОВЫЙ |
right(string,n) | FreeBASIC , Ingres , Pick Basic |
strcpy(string2, string+n) (n не должно быть больше длины строки ) | C |
string.Substring(string.Length()-n) | C # |
string[len(string)-n:] | Идти |
string.substring(string.length()-n) | Ява |
string.slice(-n) | JavaScript [40] |
right(string,n «,padchar») | Рекс , Эрланг |
substr(string,-n) | Perl 5 , PHP |
substr(string,*-n) string.substr(*-n) | Раку |
string[-n:] | Кобра , Питон |
string[n] | Выбрать базовый |
(string-take-right string n) | Схема (SRFI 13) |
string[-n..-1] | Руби , Я |
string[$-n .. $] | D [41] |
String.sub string (String.length string - n) n | OCaml [24] |
string.sub(string, -n) | Lua |
string last: n | Smalltalk ( писк , Pharo ) |
StringTake[string, -n] | Mathematica [25] |
string (1:n) | КОБОЛ |
¯n↑string. | APL |
string[n..] string.get(n..) | Ржавчина [26] |
// Примеры на Java; извлечь 4 крайних правых символа String str = "CarDoor" ; ул . подстрока ( str . length () - 4 ); // возвращает 'Door'
# Примеры в Raku "abcde" . substr (* - 3 ); # возвращает "cde" "abcde" . substr (* - 8 ); # ошибка "вне допустимого диапазона"
/ * Примеры в Rexx * /right ( "abcde" , 3 ) / * возвращает "cde" * / right ( "abcde" , 8 ) / * возвращает "abcde" * / right ( "abcde" , 8 , "*" ) / * возвращает "*** abcde" * /
; Примеры на схеме ( use-modules ( srfi srfi-13 )) ( string-take-right "abcde" , 3 ) ; возвращает «cde» ( строка-вправо «abcde» , 8 ) ; ошибка
'Примеры в Visual Basic Right ( "sandroguidi" , 3 ) ' возвращает "idi" Right ( "sandroguidi" , 100 ) 'возвращает "sandroguidi"
rpartition [ править ]
Определение | <string> .rpartition ( separator ) Ищет разделитель в строке справа налево, затем возвращает подстроку перед разделителем; разделитель; затем подстрока после разделителя. |
---|---|
Описание | Разбивает заданную строку по крайнему правому разделителю и возвращает три подстроки, которые вместе составляют оригинал. |
Формат | Языки |
---|---|
string.rpartition(separator) | Python , Ruby |
# Примеры в Python "Спам-яйца, спам, спам и ветчина" . rpartition ( 'spam' ) ### ('Спам-яйца, спам', 'спам', 'и ветчина') «Спам-яйца, спам, спам и ветчина» . rpartition ( 'X' ) ### ("", "", 'Спам-яйца, спам и ветчина')
ломтик [ править ]
см. #substring
разделить [ править ]
Определение | <string> .split ( separator [, limit ]) разделяет строку по разделителю, возможно, только до ограниченного количества подстрок. |
---|---|
Описание | Разбивает заданную строку по вхождениям разделителя (сама строка) и возвращает список (или массив) подстрок. Если указан предел , после того, как были прочитаны разделители limit - 1, остальная часть строки превращается в последнюю подстроку, независимо от того, есть ли в ней какие-либо разделители. Реализации Scheme и Erlang похожи, но отличаются по нескольким причинам. JavaScript отличается также тем, что он обрезает, а не помещает оставшуюся часть строки в последний элемент. См. Пример здесь . Реализация Cobra по умолчанию будет использовать пробелы. Напротив соединения . |
Формат | Языки |
---|---|
split(/separator/, string«, limit») | Perl 5 |
split(separator, string«, limit») string.split(separator, «limit») | Раку |
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) | Идти |
(string-tokenize string« charset« start« end»»») | Схема (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 * только) |
string.componentsSeparatedByString(separator) | Свифт (фундамент) |
TStringList.Delimiter, TStringList.DelimitedText | Object Pascal |
StringSplit[string, separator«, limit»] | Mathematica |
string.split«(sepchars«, limit«, options»»)» | Кобра |
split string separator | Tcl |
(separator≠string)⊂string или в APL2 и Dyalog APL 16.0 соответственноseparator(≠⊆⊢)string | APL |
string.split(separator)
| Ржавчина [42] |
// Пример на C # "abc, defgh, ijk" . Разделить ( ',' ); // {"abc", "defgh", "ijk"} "abc, defgh; ijk" . Разделить ( ',' , ';' ); // {"abc", "defgh", "ijk"}
% Пример в строке Erlang : tokens ( "abc; defgh; ijk" , ";" ). % ["abc", "defgh", "ijk"]
// Примеры на Java "abc, defgh, ijk" . split ( "," ); // {"abc", "defgh", "ijk"} "abc, defgh; ijk" . split ( ", |;" ); // {"abc", "defgh", "ijk"}
{Пример на Паскале} var lStrings : TStringList ; lStr : строка ; начало lStrings : = TStringList . Создать ; lStrings . Разделитель : = ',' ; lStrings . DelimitedText : = 'abc, defgh, ijk' ; lStr : = lStrings . Строки [ 0 ] ; // 'abc' lStr : = lStrings . Струны [ 1 ] ; // 'defgh' lStr : = lStrings . Струны [ 2 ] ; // 'ijk' end ;
# Примеры в Perl 5 split ( / spam / , 'Спам-яйца, спам и ветчина' ); # ('Спам-яйца', '', 'и ветчина') split ( / X / , 'Спам-яйца, спам и ветчина' ); # ('Спам-яйца, спам, спам и ветчина')
# Примеры в Raku «Спам-яйца, спам и ветчина» . разделить ( / спам / ); # (Спам-яйца и ветчина) разделить ( / X / , 'Спам-яйца, спам и ветчина' ); # (Спам-яйца, спам, спам и ветчина)
sprintf [ править ]
см. #Format
полоса [ править ]
см. #trim
strcmp [ править ]
см. #Compare (целочисленный результат)
подстрока [ править ]
Определение | substring(string, startpos, endpos) возвращает строку возвращает строкуsubstr(string, startpos, numChars) |
---|---|
Описание | Возвращает подстроку строки, начинающуюся с startpos и endpos , или начинающуюся с startpos длины numChars . Результирующая строка обрезается, если за начальной точкой остается меньше, чем numChars символов. endpos представляет собой индекс после последнего символа в подстроке. Обратите внимание, что для кодировок переменной длины, таких как UTF-8 , UTF-16 или Shift-JIS , может потребоваться удалить позиции строки в конце, чтобы избежать недопустимых строк. |
Формат | Языки |
---|---|
string[startpos:endpos] | АЛГОЛ 68 (изменяет базовый индекс) |
string (startpos .. endpos) | Ада (изменяет базовый индекс) |
Mid(string, startpos, numChars) | VB |
mid(string, startpos, numChars) | FreeBASIC |
string[startpos+(⍳numChars)-~⎕IO] | APL |
MID$(string, startpos, numChars) | БАЗОВЫЙ |
substr(string, startpos, numChars) | AWK (изменяет строку), Perl 5 , [43] [44] PHP [43] [44] |
substr(string, startpos, numChars) string.substr(startpos, numChars) | Раку [45] [46] |
substr(string, startpos «,numChars, padChar») | Rexx |
string[startpos:endpos] | Кобра , Питон , [43] [47] Go |
string[startpos, numChars] | Выбрать базовый |
string[startpos, numChars] | Руби [43] [47] |
string[startpos .. endpos] | Семя7 |
string.slice(startpos«, endpos») | JavaScript [43] [47] |
string.substr(startpos«, numChars») | C ++ (STL), JavaScript |
string.Substring(startpos, numChars) | VB .NET , C # , Windows PowerShell , F # |
string.substring(startpos«, endpos») | Java , JavaScript |
copy(string, startpos, numChars) | Object Pascal ( Delphi ) |
(substring string startpos endpos) | Схема |
(subseq string startpos endpos) | Common Lisp |
(subseq string startpos endpos) | ISLISP |
String.sub string startpos numChars | OCaml |
substring (string, startpos, numChars) | Стандартный ML |
string:sub_string(string, startpos, endpos) | Erlang |
strncpy(result, string + startpos, numChars); | C |
string[startpos .. endpos+1] | D |
take numChars $ drop startpos string | Haskell |
[string substringWithRange:NSMakeRange(startpos, numChars)] | Objective-C ( NSString * только) |
string.[startpos..endpos] | F # |
string.sub(string, startpos, endpos) | Lua [43] [47] |
string copyFrom: startpos to: endpos | Болтовня |
string(startpos:endpos) | Фортран |
SUBSTRING(string FROM startpos «FOR numChars») | SQL |
StringTake[string, {startpos, endpos}] | Mathematica [43] [47] |
string[startpos .. endpos] | Я |
string (startpos:numChars) | КОБОЛ |
строка диапазон строка startpos endpos | Tcl |
string[startpos..endpos] string.get(startpos..endpos) | Ржавчина [26] |
// Примеры на C # "abc" . Substring ( 1 , 1 ): // возвращает «b» «abc» . Подстрока ( 1 , 2 ); // возвращает «bc» «abc» . Подстрока ( 1 , 6 ); // ошибка
;; Примеры в Common Lisp ( подзапрос «abc» 1 2 ) ; возвращает «b» ( подзапрос «abc» 2 ) ; возвращает "c"
% Примеры в строке Erlang : substr ( "abc" , 2 , 1 ). % возвращает строку "b" : substr ( "abc" , 2 ). % возвращает "bc"
# Примеры в Perl 5 substr ( "abc" , 1 , 1 ); # возвращает "b" substr ( "abc" , 1 ); # возвращает "bc"
# Примеры в раку "abc" . substr ( 1 , 1 ); # возвращает "b" "abc" . substr ( 1 ); # возвращает "bc"
# Примеры в Python «abc» [ 1 : 2 ] # возвращает «b» «abc» [ 1 : 3 ] # возвращает «bc»
/ * Примеры в Rexx * /substr ( "abc" , 2 , 1 ) / * возвращает "b" * / substr ( "abc" , 2 ) / * возвращает "bc" * / substr ( "abc" , 2 , 6 ) / * возвращает "bc" * / substr ( "abc" , 2 , 6 , "*" ) / * возвращает "bc ****" * /
Заглавные [ править ]
Определение | uppercase(string) возвращает строку |
---|---|
Описание | Возвращает строку в верхнем регистре. |
Формат | Языки |
---|---|
UCase(string) | VB |
ucase(string) | FreeBASIC |
toupper(string) | AWK (меняет строку) |
uc(string) | Перл , Раку |
string.uc | Раку |
toupper(char) | C (работает с одним символом) |
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 (строка / массив символов) |
std.string.toUpper(string) | D |
transform(string.begin(), string.end(), result.begin(), toupper)[31] | C ++ [48] |
uppercase(string) | Object Pascal ( Delphi ) |
upcase(char) | Object Pascal ( Delphi ) (работает с одним символом) |
strtoupper(string) | PHP |
upper(string) | Семя7 |
echo "string" | tr 'a-z' 'A-Z' | Unix |
translate(string) , или же
| Rexx |
string.upper() | Python |
upcase(string) | Выбрать базовый |
string.upcase | Рубин [33] |
strings.ToUpper(string) | Идти |
(string-upcase string) | Схема , Common Lisp |
String.uppercase string | OCaml |
String.map Char.toUpper string | Стандартный 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 * только), Swift (Foundation) |
string.upper(string) | Lua |
string asUppercase | Болтовня |
UPPER(string) | SQL |
ToUpperCase[string] | Mathematica |
«FUNCTION» UPPER-CASE(string) | КОБОЛ |
string.toUpper | Кобра |
string toupper string | Tcl |
string.to_uppercase() | Ржавчина [49] |
// Пример на C # "Wiki значит быстро?" . ToUpper (); // "WIKI ЗНАЧИТ БЫСТРЫЙ?"
# Пример в Perl 5 uc ( "Wiki значит быстро?" ); # "WIKI ЗНАЧИТ БЫСТРЫЙ?"
# Пример в Raku uc ( "Wiki значит быстро?" ); # "WIKI ЗНАЧИТ БЫСТРЫЙ?" "Вики значит быстро?" . uc ; # "WIKI ЗНАЧИТ БЫСТРЫЙ?"
/ * Пример в Rexx * /translate ( "Wiki значит быстро?" ) / * "WIKI MEANS FAST?" * / / * Пример # 2 * /A = 'Это пример.'ВЕРХНИЙ A / * «ЭТО ПРИМЕР». * / / * Пример # 3 * /A = 'верхнее использование функции перевода'.Перевести UPPER VAR A Z / * Z = "UPPER, ИСПОЛЬЗУЯ ФУНКЦИЮ ПЕРЕВОДА." * /
; Пример на схеме ( use-modules ( srfi srfi-13 )) ( строка- вверх case "Wiki означает быстро?" ) ; "WIKI ЗНАЧИТ БЫСТРЫЙ?"
'Пример в Visual Basic UCase ( «Wiki значит быстро?» ) «WIKI MEANS FAST?»
обрезать [ править ]
trim
или strip
используется для удаления пробелов в начале, конце или как в начале, так и в конце строки.
Пример использования | Языки |
---|---|
String.Trim([chars]) | C # , VB.NET , Windows PowerShell |
string.strip(); | D |
(.trim string) | Clojure |
sequence [ predicate? ] trim | Фактор |
(string-trim '(#\Space #\Tab #\Newline) string) | Common Lisp |
(string-trim string) | Схема |
string.trim() | Java , JavaScript (1.8.1+, Firefox 3.5+), Rust [50] |
Trim(String) | Паскаль , [51] 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 | Рубин |
string.trim | Раку |
trim(string) | PHP , Раку |
[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] | Objective-C с использованием какао |
string withBlanksTrimmed | Smalltalk (писк, Pharo) Smalltalk |
strip(string) | SAS |
string trim $string | Tcl |
TRIM(string) or TRIM(ADJUSTL(string)) | Фортран |
TRIM(string) | SQL |
TRIM(string) or LTrim(string) or RTrim(String) | Холодный синтез |
String.trim string | OCaml 4+ |
Другие языки
В языках без встроенной функции обрезки обычно просто создать настраиваемую функцию, которая выполняет ту же задачу.
APL [ править ]
APL может напрямую использовать регулярные выражения:
Обрезать ← '^ + | + $ ' ⎕R '
В качестве альтернативы функциональный подход, сочетающий логические маски, которые отфильтровывают начальные и конечные пробелы:
Обрезать ← { ⍵ / ⍨ ( ∨ \ ∧ ∘ ⌽∨ \ ∘ ⌽ ) '' ≠ ⍵ }
Или переверните и удалите ведущие пробелы дважды:
Обрезать ← { ( ∨ \ '' ≠ ⍵ ) / ⍵ } ∘ ⌽ ⍣ 2
AWK [ править ]
В AWK можно использовать регулярные выражения для обрезки:
ltrim ( v ) = gsub ( / ^ [\ t] + / , "" , v ) rtrim ( v ) = gsub ( / [\ t] + $ / , "" , v ) trim ( v ) = ltrim ( v ); rtrim ( v )
или же:
функция ltrim ( s ) { sub ( / ^ [\ t] + / , "" , s ); return s } функция rtrim ( s ) { sub ( / [\ t] + $ / , "" , s ); return s } функция trim ( s ) { return rtrim ( ltrim ( s )); }
C / C ++ [ править ]
В C или C ++ нет стандартной функции обрезки. Большинство доступных строковых библиотек [52] для C содержат код, реализующий усечение, или функции, которые значительно упрощают эффективную реализацию. В некоторых нестандартных библиотеках C функция также часто называется EatWhitespace .
В C программисты часто комбинируют ltrim и rtrim для реализации обрезки:
#include <string.h>#include <ctype.h>void rtrim ( char * str ) { char * s ; s = str + strlen ( str ); while ( - s > = str ) { если ( ! isspace ( * s )) перерыв ; * s = 0 ; } }void ltrim ( char * str ) { size_t n ; п = 0 ; в то время как ( ул [ п ] =! '\ 0' && isspace (( неподписанные символ ) ул [ п ])) { п ++ ; } memmove ( str , str + n , strlen ( str ) - n + 1 ); }пустая обрезка ( char * str ) { rtrim ( str ); ltrim ( str ); }
У библиотеки C ++ с открытым исходным кодом Boost есть несколько вариантов обрезки, включая стандартный: [53]
#include <повышение / алгоритм / строка / trim.hpp>обрезается = подталкивание :: Алгоритм :: trim_copy ( "строка" );
Обратите внимание, что с функцией boost, называемой просто, trim
входная последовательность изменяется на месте и не возвращает результат.
Другая библиотека C ++ с открытым исходным кодом Qt имеет несколько вариантов обрезки, включая стандартный: [54]
#include <QString>обрезано = с . обрезанный ();
Linux ядро также включает в себя функцию полосы, strstrip()
, так как 2.6.18-rc1, который урезает строку «на месте». Начиная с версии 2.6.33-rc1, ядро использует strim()
вместо, strstrip()
чтобы избежать ложных предупреждений. [55]
Haskell [ править ]
Алгоритм обрезки в Haskell :
import Data.Char ( isSpace ) trim :: String -> String trim = f . f, где f = обратный . dropWhile isSpace
можно интерпретировать следующим образом: f удаляет предыдущий пробел и меняет строку. Затем f снова применяется к собственному выходу. Обратите внимание, что подпись типа (вторая строка) не является обязательной.
J [ править ]
Алгоритм обрезки в J - это функциональное описание:
обрезать =. # ~ [: ( +. / \ *. +. / \. ) '' & ~:
То есть: filter ( #~
) для непробельных символов ( ' '&~:
) между ведущими ( +./\
) и ( *.
) конечными ( +./\.
) пробелами.
JavaScript [ править ]
В JavaScript 1.8.1 (Firefox 3.5 и новее) и в стандарте ECMAScript 5 есть встроенная функция обрезки. В более ранних версиях его можно было добавить в прототип объекта String следующим образом:
Строка . прототип . trim = function () { верните это . заменить ( / ^ \ s + / g , "" ). заменить ( / \ s + $ / g , "" ); };
Perl [ править ]
Perl 5 не имеет встроенной функции обрезки. Однако функциональность обычно достигается с помощью регулярных выражений .
Пример:
$ строка = ~ s / ^ \ s + // ; # удалить начальные пробелы $ string = ~ s / \ s + $ // ; # удалить завершающие пробелы
или же:
$ строка = ~ s / ^ \ s + | \ s + $ // g ; # удаляем начальные и конечные пробелы
Эти примеры изменяют значение исходной переменной $string
.
Для Perl также является StripLTSpace в String::Strip
из CPAN .
Есть, однако, две функции, которые обычно используются , чтобы лишить пробельные символы конца строки, chomp
а chop
:
chop
удаляет последний символ из строки и возвращает его.chomp
удаляет завершающие символы новой строки из строки, если они есть. (То, что составляет новую строку, зависит от $ INPUT_RECORD_SEPARATOR ).
В Raku , родственном языке Perl, у строк есть trim
метод.
Пример:
$ строка = $ строка . обрезать ; # удалить начальные и конечные пробелы $ string . = trim ; # то же самое
Tcl [ править ]
Tcl string
команда имеет три соответствующих подкомандами: trim
, trimright
и trimleft
. Для каждой из этих команд может быть указан дополнительный аргумент: строка, представляющая набор удаляемых символов - по умолчанию используется пробел (пробел, табуляция, новая строка, возврат каретки).
Пример обрезки гласных:
набор строки звукоподражания набора отделаны [ строка декоративных $ строки AEIOU ] ; # результатом будет nomatop set r_trimmed [ string trimright $ string aeiou ] ; # результат - onomatop set l_trimmed [ string trimleft $ string aeiou ] ; # результат - номатопея
XSLT [ править ]
XSLT включает функцию, которая удаляет начальные и конечные пробелы, в дополнение к замене любой последовательности пробелов (включая разрывы строк) одним пробелом.normalize-space(string)
Пример:
<xsl: variable name = 'trimmed' > <xsl: value-of select = 'normalize-space (string)' /> </ xsl: variable>
XSLT 2.0 включает регулярные выражения, предоставляя еще один механизм для обрезки строк.
Другой метод XSLT для обрезки - использование функции XPath 2.0 substring()
.
Ссылки [ править ]
- ^ a b c d e индекс может быть отрицательным, что в таком случае указывает количество разрядов перед концом строки.
- ^ В Ruststr::charsметод перебирает кодовые точки, аstd::iter::Iterator::nthметод на итераторах возвращает n-е значение с нулевым индексом из итератора, илиNone.
- ^ индекс не можетбыть отрицательным, используйте * -N, где N указывает количество мест до конца строки.
- ^ возвращает МЕНЬШЕ, РАВНО или БОЛЬШЕ
- ^ возвращает LT, EQ или GT
- ^ возвращает
.TRUE.
или.FALSE.
. Эти функции основаны на последовательности сортировки ASCII. - ^ a b Расширение IBM.
- ^ В Русте, тоOrd::cmpметод на строке возвращаетOrdering:
Less
,Equal
, илиGreater
. - ^ Б с д е е ржавчины, операторов
==
и!=
и методовeq
,ne
которые реализованы с помощью PartialEqпризнака, а операторы<
,>
,<=
,>=
и методlt
,gt
,le
,ge
реализуется с помощью PartialOrdпризнака. - ^ Операторы используют последовательность сортировки компилятора по умолчанию.
- ^ модифицирует, в котором должно быть достаточно места для хранения результата
string1
- ^ В Rust
+
оператор реализованAddтрейтом. - ^ См.str::containsМетод.
- ^ a b startpos - это расширение IBM.
- ^ a b См. str::findметод.
- ^
startpos
- расширение IBM. - ^ "сканировать в Fortran Wiki" . Fortranwiki.org. 2009-04-30 . Проверено 18 августа 2013 .
- ^ "проверить в Fortran Wiki" . Fortranwiki.org. 2012-05-03 . Проверено 18 августа 2013 .
- ^
formatstring
должен быть фиксированным литералом во время компиляции, чтобы иметь правильный тип. - ^ См.std::format, Который импортируется прелюдией Rust,чтобы его можно было использовать под именем
format
. - ^ См.slice::joinМетод.
- ^ если n больше, чем длина строки, то в режиме отладки создается исключение ArrayRangeException, в режиме выпуска поведение не определено .
- ^ если n больше длины строки, Java выдаст исключение IndexOutOfBoundsException
- ^ a b, если n больше длины строки, вызывает Invalid_argument
- ^ a b, если n больше длины строки, вывести сообщение "StringTake :: take:"
- ^ a b c В Rust строки индексируются с точки зрения байтовых смещений, и во время выполнения возникает паника, если индекс выходит за границы или если это приведет к недопустимому UTF-8 .
&str
(Строка ссылка) может быть индексированы различными типами диапазонов, в том числе Range(0..n
), RangeFrom(n..
) и RangeTo(..n
) , потому что они все реализации SliceIndexпризнака сstr
того типа индексируется. Этот str::getметод не вызывает паники при индексировании. Он возвращается Noneв тех случаях, когда при индексации возникает паника. - ^ Ruby не поддерживает Unicode
- ^ См.str::lenМетод.
- ^ В Ruststr::charsметод выполняет итерацию по кодовым точкам, аstd::iter::Iterator::countметод на итераторах использует итератор и возвращает общее количество элементов в итераторе.
- ^ работает с одним символом
- ^ Б функция существует в пространстве имен. Вы должны включить файл заголовка, чтобы использовать его. Функции и находятся в глобальном пространстве имен, полученном из файла заголовка. В и именах перегружены и не могут быть переданы без броска , чтобы разрешить функцию перегрузки двусмысленности, например ,
transform
std::
<algorithm>
tolower
toupper
<ctype.h>
std::tolower
std::toupper
std::transform
std::transform(string.begin(), string.end(), result.begin(), (int (*)(int))std::tolower);
- Только ^
std::string
результат сохраняется в строке,result
которая не меньше длиныstring
, и может быть, а может и не бытьstring
самим собой - ^ a b только символы ASCII, поскольку Ruby не поддерживает Unicode
- ^ См.str::to_lowercaseМетод.
- ^ См.str::replaceМетод.
- ^ a b c d e Строка "find" в этой конструкции интерпретируется как регулярное выражение . Некоторые символы имеют особое значение в регулярных выражениях. Если вы хотите найти строку буквально, вам нужно заключить в кавычки специальные символы.
- ^ третий параметр нестандартный
- ^ В Ruststr::charsметод выполняет итерацию по кодовым точкам,std::iter::Iterator::revметод на обратимых итераторах (std::iter::DoubleEndedIterator) создает обратный итератор, аstd::iter::Iterator::collectметод использует итератор и создает коллекцию (которая здесь указана как aStringссинтаксисом turbofish ) из элементов итератора.
- ^ См.str::rfindМетод.
- ^ "Аннотированный ES5" . Es5.github.com . Проверено 18 августа 2013 .
- ^ если n больше длины строки, то в режиме отладки выдается исключение ArrayRangeException и неопределенное поведение в режиме выпуска
- ^ Смstr::splitиstr::rsplitметоды.
- ^ a b c d e f g
startpos
может быть отрицательным, что указывает на то, что количество мест должно начинаться до конца строки. - ^ a b
numChars
может быть отрицательным, что указывает на то, что количество разрядов должно заканчиваться до конца строки. - ^ не
startpos
можетбыть отрицательным, используйте * - startpos, чтобы указать, что количество разрядов должно начинаться до конца строки. - ^ не
numChars
можетбыть отрицательным, используйте * - numChars, чтобы указать, чтобы закончить это количество мест перед концом строки. - ^ a b c d e
endpos
может быть отрицательным, что указывает на то, что количество разрядов должно заканчиваться до конца строки. - Только ^
std::string
, результат сохраняется в строковом результате, длина которого не меньше длины строки , и может быть, а может и не бытьсамой строкой - ^ В Ruststr::to_uppercaseметод возвращает вновь выделенный объект, вStringкотором все символы нижнего регистра заменены на символы верхнего регистра в соответствии с правилами Unicode.
- ^ В Ruststr::trimметод возвращает ссылку на оригинал
&str
. - ^ "Обрезка - приручник GNU Pascal" . Gnu-pascal.de . Проверено 24 августа 2013 .
- ^ "Сравнение строковых библиотек" . And.org . Проверено 24 августа 2013 .
- ^ «Использование - 1.54.0» . Boost.org. 2013-05-22 . Проверено 24 августа 2013 .
- ^ [1] Архивировано 2 августа 2009 года в Wayback Machine.
- ^ dankamongmen. "sprezzos-kernel-Packing / changelog at master · dankamongmen / sprezzos-kernel-packages · GitHub" . Github.com . Проверено 29 мая 2016 .