مقارنة لغات البرمجة (وظائف السلاسل النصية)
تُستخدم دوال السلاسل النصية في لغات برمجة الكمبيوتر لمعالجة سلسلة نصية أو الاستعلام عن معلومات حول سلسلة نصية (بعضها يقوم بالأمرين معًا).
معظم لغات البرمجة التي تدعم نوع بيانات السلسلة النصية تحتوي على بعض الدوال الخاصة بالسلاسل النصية، مع وجود طرق أخرى منخفضة المستوى داخل كل لغة للتعامل مع السلاسل النصية مباشرةً. في لغات البرمجة كائنية التوجه، تُنفَّذ دوال السلاسل النصية عادةً كخصائص وأساليب لكائنات السلاسل النصية. أما في اللغات الوظيفية واللغات القائمة على القوائم، فتُمثَّل السلسلة النصية كقائمة (من رموز الأحرف)، وبالتالي يمكن اعتبار جميع إجراءات معالجة القوائم دوالًا خاصة بالسلاسل النصية. مع ذلك، قد تُنفِّذ هذه اللغات أيضًا مجموعة فرعية من الدوال الخاصة بالسلاسل النصية.
بالنسبة للدوال التي تتعامل مع السلاسل النصية، فإن لغات البرمجة الحديثة الموجهة للكائنات، مثل C# و Java، تتميز بسلاسل نصية غير قابلة للتغيير، وتعيد نسخة منها (في ذاكرة ديناميكية مُخصصة حديثًا)، بينما تقوم لغات أخرى، مثل C، بتعديل السلسلة النصية الأصلية ما لم يقم المبرمج بنسخ البيانات إلى سلسلة نصية جديدة. انظر على سبيل المثال دمج السلاسل النصية أدناه.
أبسط مثال على دالة السلسلة النصية هو الدالة ` length(string)length`. تُعيد هذه الدالة طول سلسلة نصية حرفية .
- على سبيل المثال،
length("hello world")ستُرجع القيمة 11.
قد تحتوي لغات برمجة أخرى على دوال للسلاسل النصية ذات بنية أو معاملات أو نتائج مشابهة أو مطابقة تمامًا. على سبيل المثال، في العديد من اللغات، تُكتب دالة الطول عادةً على النحو التالي: len(string) . تهدف القائمة التالية للدوال الشائعة إلى المساعدة في الحد من هذا الالتباس.
دوال السلاسل النصية الشائعة (مرجع متعدد اللغات)
فيما يلي قائمة بوظائف السلاسل النصية الشائعة في العديد من لغات البرمجة، مع ذكر أسمائها المختلفة. تهدف هذه القائمة إلى مساعدة المبرمجين في إيجاد الوظيفة المكافئة في كل لغة. يُتناول دمج السلاسل النصية والتعبيرات النمطية في صفحات منفصلة. العبارات بين علامتي اقتباس مفردتين (« … ») اختيارية. [ 1 ]
شارات
| تعريف | charAt(string,integer)يُرجع حرفًا. |
|---|---|
| وصف | يُعيد الحرف الموجود في الفهرس المحدد في السلسلة النصية. |
| مقابل | انظر إلى سلسلة فرعية بطول حرف واحد. |
| شكل | اللغات | فهرس القاعدة |
|---|---|---|
string[i] | ALGOL 68 ، APL ، Julia ، Pascal ، Object Pascal ( Delphi )، Seed7 | 1 |
string[i] | C ، C++ ، C# ، Cobra ، D ، FreeBASIC ، Go ، Python ، [ 2 ] PHP ، Ruby ، [ 2 ] Windows PowerShell ، JavaScript ، 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) | جافا ، جافا سكريبت | 0 |
string.[i] | OCaml ، F# | 0 |
string.chars().nth(i) | الصدأ [ 3 ] | 0 |
string[i,1] | اختر الأساسي | 1 |
String.sub (string, i) | لغة الآلة القياسية | 0 |
string !! i | هاسكل | 0 |
(string-ref stringi) | مخطط | 0 |
(char stringi) | لغة الشفرة الشائعة | 0 |
(elt stringi) | لغة ISLISP | 0 |
(get stringi) | كلوجر | 0 |
substr(string, i, 1) | بيرل 5 [ 2 ] | 0 |
substr(string, i, 1)string.substr(i, 1) | راكو [ 4 ] | 0 |
substr(string, i, 1) | PL/I | 1 |
substr(string, i, 1) | ريكس | 1 |
string.at(i) | لغة C++ (STL) (مع التحقق من الحدود) | 0 |
lists:nth(i, string) | إرلانغ | 1 |
[string characterAtIndex:i] | لغة البرمجة Objective-C ( NSString *فقط) | 0 |
string.sub(string, i, i)(string):sub(i, i) | Lua [ 2 ] | 1 |
string at: i | محادثة قصيرة (مع التحقق من الحدود) | 1 |
string index string i | تي سي إل | 0 |
StringTake[string, {i}] | Mathematica ، لغة Wolfram [ 2 ] | 1 |
string@i | إيفل | 1 |
string (i:1) | كوبول | 1 |
${string_param:i:1} | سحق | 0 |
i⌷string | APL | 0 أو 1 |
{ مثال بلغة باسكال } var MyStr : string = 'Hello, World' ; MyChar : Char ; begin MyChar := MyStr [ 2 ] ; // 'e'مثال في لغة ALGOL 68 "Hello, World"[2]; // 'e'
// مثال بلغة C #include <stdio.h>char myStr1 [] = "Hello, World" ; printf ( "%c" , * ( myStr1 + 1 )); // 'e' printf ( "%c" , * ( myStr1 + 7 )); // 'W' printf ( "%c" , myStr1 [ 11 ]); // 'd' printf ( "%s" , myStr1 ); // 'Hello, World' printf ( "%s" , "Hello(2), World(2)" ); // 'Hello(2), World(2)'استيراد std ؛باستخدام std :: string ;char myStr1 [] = "Hello(1), World(1)" ; string myStr2 = "Hello(2), World(2)" ; std :: println ( "Hello(3), World(3)" ); // 'Hello(3 ) , World(3)' std :: println ( " {}" , myStr2 [ 6 ]); // '2' std :: println ( "{}" , myStr1.substr ( 5 , 3 )); // '(1)'// مثال بلغة C# "Hello, World" [ 2 ]; // 'l'# مثال في بيرل 5 substr ( "Hello, World" , 1 , 1 ); # 'e'# أمثلة في بايثون " Hello, World" [ 2 ] 'l' "Hello, World" [ -3 ] 'r'# مثال في راكو "Hello, World" .substr ( 1 , 1 ); # 'e'مثال في فيجوال بيسك Mid ( "Hello, World" , 2 , 1 )مثال في Visual Basic .NET "Hello, World" . Chars ( 2 ) "l"c"مثال بلغة سمول توك" 'Hello, World' في: 2 . "$e"// مثال في لغة Rust "Hello, World" .chars ( ). nth ( 2 ); // Some('l')قارن (النتيجة العددية)
| تعريف | compare(string1,string2)يُرجع عددًا صحيحًا. |
|---|---|
| وصف | يقارن هذا البرنامج سلسلتين نصيتين. إذا كانتا متطابقتين، يُرجع صفرًا. وإلا، فإن معظم هذه البرامج تُرجع نتيجة موجبة أو سالبة تُشير إلى ما إذا كانت السلسلة الأولى أكبر أو أصغر معجميًا من السلسلة الثانية ، على التوالي . ويُستثنى من ذلك برامج Scheme وRexx التي تُرجع فهرس أول اختلاف، وبرنامج Smalltalk الذي يُجيب على رمز مقارنة يُحدد كيفية ترتيب المُستقبِل للسلسلة النصية المُعاملة. |
| شكل | اللغات |
|---|---|
IF string1<string2 THEN -1 ELSE ABS (string1>string2) FI | ALGOL 68 |
cmp(string1, string2) | بايثون 2 |
(string1 > string2) - (string1 < string2) | بايثون |
strcmp(string1, string2) | لغة C ، لغة PHP |
std.string.cmp(string1, string2) | د |
StrComp(string1, string2) | VB ، أوبجكت باسكال ( دلفي ) |
string1 cmp string2 | بيرل ، راكو |
string1 compare: string2 | المحادثات القصيرة ( سكويك ، فارو ) |
string1 <=> string2 | روبي ، سي++ (STL، سي++20 ) [ 5 ] |
string1.compare(string2) | لغة C++ (STL)، لغة Swift (الأساسية) |
compare(string1, string2) | ريكس ، سيد7 |
compare(string1, string2, pad) | ريكس |
CompareStr(string1, string2) | باسكال ، أوبجكت باسكال ( دلفي ) |
string1.compareTo(string2) | كوبرا ، جافا |
string1.CompareTo(string2) | VB .NET ، C# ، F# |
(compare string1string2) | كلوجر |
(string= string1string2) | لغة الشفرة الشائعة |
(string-compare string1string2p<p=p>) | المخطط (SRFI 13) |
(string= string1string2) | لغة ISLISP |
compare string1string2 | أوكاميل |
String.compare (string1, string2) | التعلم الآلي القياسي [ 6 ] |
compare string1string2 | هاسكل [ 7 ] |
[string]::Compare(string1, string2) | ويندوز باور شيل |
[string1 compare:string2] | لغة البرمجة Objective-C ( NSString *فقط) |
LLT(string1,string2)LLE(string1,string2)LGT(string1,string2)LGE(string1,string2) | فورتران [ 8 ] |
string1.localeCompare(string2) | جافا سكريبت |
| يذهب |
string compare string1string2 | تي سي إل |
compare(string1,string2,count) | PL/I [ 9 ] |
string1.cmp(string2) | الصدأ [ 10 ] |
# مثال في بيرل 5 "hello" cmp "world" ; # يُرجع -1مثال في بايثون cmp ( "hello" , "world" ) يُرجع -1# أمثلة في راكو "hello" cmp "world" ; # تُرجع أقل "world" cmp "hello" ; # تُرجع أكثر "hello" cmp "hello" ; # تُرجع نفس الشيء/** مثال بلغة Rexx */ compare ( "hello" , "world" ) /* تُرجع فهرس عدم التطابق: 1 */مثال في لغة Scheme ( استخدام الوحدات ( srfi srfi-13 )) ؛ يُرجع فهرس عدم التطابق: 0 ( مقارنة السلاسل "hello" "world" القيم القيم القيم )قارن (بناءً على عامل المقارنة، نتيجة منطقية)
| تعريف | string1 OP string2أو تُرجع قيمة منطقية (Boolean).(compare string1 string2) |
|---|---|
| وصف | يقارن هذا البرنامج بين سلسلتين نصيتين باستخدام عامل أو دالة علائقية. ويُرجع نتيجة منطقية. |
| شكل | اللغات |
|---|---|
string1 OP string2، حيث OPيمكن أن تكون أيًا من القيم التالية : =، <>، <، >، <=، و >= | باسكال ، أوبجكت باسكال ( دلفي )، أوكاميل ، سيد7 ، ستاندرد إم إل ، بيسك ، في بي ، في بي دوت نت ، إف شارب |
string1 OP string2، حيث OPيمكن أن تكون أيًا من العلامات التالية : =، /=، ≠، <، >، <=، ≤، و ≥ ؛ وكذلك: EQ، NE، LT، LE، GE، و GT | ALGOL 68 |
(stringOP? string1string2)، حيث OPيمكن أن يكون أيًا من =، -ci=، <، -ci<، >، -ci>، <=، -ci<=، >= و -ci>= (المعاملات التي تبدأ بـ ' ' غير حساسة لحالة الأحرف)-ci | مخطط |
(stringOP string1string2)، حيث OPيمكن أن يكون أيًا من =، -ci=، <>، -ci<>، <، -ci<، >، -ci>، <=، -ci<=، >= و -ci>= (المعاملات التي تبدأ بـ ' -ci ' غير حساسة لحالة الأحرف) | المخطط (SRFI 13) |
(stringOP string1string2)، حيث OPيمكن أن تكون أيًا من =، -يساوي، /=، -لا-يساوي، <، -أصغر، >، -أكبر، <=، -ليس-أكبر، >= و -ليس-أصغر (المعاملات اللفظية غير حساسة لحالة الأحرف) | لغة الشفرة الشائعة |
(stringOP string1string2)، حيث OPيمكن أن تكون أيًا من القيم التالية : =، /=، <، >، <=، و >= | لغة ISLISP |
string1 OP string2، حيث OPيمكن أن يكون أيًا من =، \=، <، >، <= و >= [ 11 ] | ريكس |
string1 OP string2، حيث OPيمكن أن يكون أيًا من =، ¬=، <، >، <=، >=، ¬< و ¬> [ 12 ] | PL/I |
string1 OP string2، حيث OPيمكن أن تكون أيًا من القيم التالية : =، /=، <، >، <=، و >= | آدا |
string1 OP string2، حيث OPيمكن أن تكون أيًا من القيم التالية: ==، /=، <، >، =<، و >= | إرلانغ |
string1 OP string2، حيث OPيمكن أن تكون أيًا من القيم التالية: ==، /=، <، >، <=، و >= | هاسكل |
string1 OP string2، حيث OPيمكن أن تكون أيًا من القيم التالية: eq ، ne ، lt ، gt ، le ، و ge | بيرل ، راكو |
string1 OP string2، حيث OPيمكن أن تكون أيًا من القيم التالية: ==، !=، <، >، <=، و >= | C++ (STL)، C# ، D ، Go ، JavaScript ، Python ، PHP ، Ruby ، Rust ، [ 13 ] Swift |
string1 OP string2، حيث OPيمكن أن تكون أيًا من -eq، -ceq، -ne، -cne، -lt، -clt، -gt، -cgt، -le، -cle، -ge، و- cge (المعاملات التي تبدأ بـ ' c ' حساسة لحالة الأحرف) | ويندوز باور شيل |
string1 OP string2، حيث OPيمكن أن تكون أيًا من القيم التالية: ==، ~=، <، >، <=، و >= | لغة لوا |
string1 OP string2، حيث OPيمكن أن تكون أيًا من القيم التالية : =، ~=، <، >، <=، و >= | أحاديث قصيرة |
string1 OP string2، حيث OPيمكن أن تكون أيًا من ==، /=، <، >، <= و >=؛ وكذلك: .EQ.، .NE.، .LT.، .LE.، .GT. و .GE. | فورتران [ 14 ] |
string1 OP string2حيث OPيمكن أن يكون أيًا من =، <>، <، >، <=، >= بالإضافة إلى المكافئات اللفظية | كوبول |
string1 OP string2حيث OPيمكن أن تكون أيًا من القيم التالية : ==، <>، <، >، <=، و >= | الكوبرا |
string1 OP string2هذه الصيغة متاحة، ولكنها تعني مقارنة المؤشرات التي تشير إلى السلاسل النصية، وليس محتويات السلسلة نفسها. استخدم الدالة Compare (نتيجة عددية صحيحة). | لغة سي ، جافا |
string1.METHOD(string2)أين METHODيوجد أي من eq، ne، gt، lt، ge،le | الصدأ [ 13 ] |
مثال في لغة إرلانج: "hello" > "world" . % يُرجع خطأ# مثال في راكو "art" > "painting" ; يُرجع خطأ "art" < "painting" ; يُرجع صحيحمثال في ويندوز باور شيل "hello" -gt "world" يُرجع خطأمثال في لغة Common Lisp : ( string< "art" "painting" ) ; تُرجع قيمة فارغة (nil) . ( string< "art" "painting" ) ; تُرجع قيمة غير فارغة (non-nil) .سلسلة
| تعريف | concatenate(string1,string2)يُرجع سلسلة نصية. |
|---|---|
| وصف | تقوم هذه الدالة بدمج سلسلتين نصيتين معًا، ثم تُعيد السلسلة المدمجة. في بعض اللغات، مثل لغة C، توجد سلاسل نصية قابلة للتعديل، لذا في الواقع، يتم إلحاق السلسلة الثانية بالسلسلة الأولى، ثم تُعاد السلسلة المُعدّلة. |
| شكل | اللغات |
|---|---|
string1adjacent_tostring2 | ريكس (دعامة، ما يعادل )string1||string2 |
string1whitespacestring2 | ريكس (مكافئ لـ )string1|| ' ' ||string2 |
string1 & string2 | Ada ، FreeBASIC ، Seed7 ، BASIC ، VB ، VB .NET ، COBOL (بين القيم الحرفية فقط) |
strcat(string1, string2) | C و C++ ( فقط) [ 15 ]char* |
string1 . string2 | بيرل ، بي إتش بي |
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 | د ، راكو |
(string-append string1string2) | مخطط ، ISLISP |
(concatenate 'string string1string2) | لغة الشفرة الشائعة |
(str string1string2) | كلوجر |
string1||string2 | Rexx ، SQL ، PL/I |
string1 // string2 | فورتران |
string1 ++ string2 | إرلانج ، هاسكل |
string1 ^ string2 | OCaml ، Standard ML ، F# |
[string1 stringByAppendingString:string2] | لغة البرمجة Objective-C ( NSString *فقط) |
string1 .. string2 | لغة لوا |
string1 , string2 | سمول توك ، إيه بي إل |
string1string2 | سنوبول |
string1string2 | سحق |
string1 <> string2 | ماثيماتيكا |
| دمج السلسلة 1 والسلسلة 2 | تي سي إل |
{ مثال بلغة باسكال } 'abc' + 'def' ; // تُرجع "abcdef"// مثال بلغة C# "abc" + "def" ; // يُرجع "abcdef"مثال في فيجوال بيسك: "abc" & "def" يُرجع "abcdef". "abc" + "def" يُرجع "abcdef". "abc" & Null يُرجع "abc". "abc" + Null يُرجع Null.// مثال في لغة D "abc" ~ "def" ; // يُرجع "abcdef"مثال في لغة Common Lisp : ( concatenate 'string "abc " "def " "ghi" ) ; تُرجع "abc def ghi"# مثال في بيرل 5 "abc" . "def" ; يُرجع "abcdef" "Perl " . 5 ; يُرجع "Perl 5"/* مثال بلغة PL/I */ "abc" || "def" /* يُرجع "abcdef" */# مثال في راكو "abc" ~ "def" ; # يُرجع "abcdef" "Perl " ~ 6 ; # يُرجع "Perl 6"/* مثال بلغة Rexx */ "Strike" 2 /* تُرجع "Strike2" */ "Strike" 2 /* تُرجع "Strike 2" */يتضمن
| تعريف | contains(string,substring)تُرجع قيمة منطقية |
|---|---|
| وصف | تُعيد هذه الدالة ما إذا كانت السلسلة النصية تحتوي على سلسلة فرعية مُحددة. وهذا يُعادل استخدام دالة البحث (Find) ثم التحقق من عدم وجود شرط الفشل المذكور في العمود الثالث من قسم البحث. مع ذلك، تُوفر بعض لغات البرمجة طريقةً أبسط للتعبير عن هذا الاختبار. |
| متعلق ب | يجد |
| شكل | اللغات |
|---|---|
string_in_string(string, loc int, substring) | ALGOL 68 |
ContainsStr(string, substring) | أوبجكت باسكال ( دلفي ) |
strstr(string, substring) != NULL | لغة C ، لغة C++ ( char *فقط) |
string.Contains(substring) | سي شارب ، فيجوال بيسك دوت نت ، ويندوز باور شيل ، إف شارب |
string.contains(substring) | كوبرا ، جافا (1.5+)، راكو ، روست ، [ 17 ] C++ ( C++ 23 ) [ 18 ] |
string.indexOf(substring) >= 0 | جافا سكريبت |
strpos(string, substring) !== false | PHP |
str_contains(string, substring) | PHP (8+) |
pos(string, substring) <> 0 | سيد7 |
substring in string | كوبرا ، بايثون (2.3+) |
string.find(string, substring) ~= nil | لغة لوا |
string.include?(substring) | روبي |
Data.List.isInfixOf substringstring | هاسكل ( GHC 6.6+) |
string includesSubstring: substring | سمول توك ( سكويك ، فارو ، سمول توك/إكس ) |
String.isSubstring substringstring | لغة الآلة القياسية |
(search substringstring) | لغة الشفرة الشائعة |
| لغة ISLISP |
(substring? substringstring) | كلوجر |
! StringFreeQ[string, substring] | ماثيماتيكا |
index(string, substring, startpos)>0 | فورتران، PL/I [ 19 ] |
index(string, substring, occurrence)>0 | اختر الأساسي |
strings.Contains(string, substring) | يذهب |
string.find(substring) != string::npos | لغة سي++ |
[string containsString:substring] | Objective-C ( NSString *فقط، iOS 8+/OS X 10.10+) |
string.rangeOfString(substring) != nil | سويفت (الأساسية) |
∨/substring⍷string | APL |
مثال في لغة ALGOL 68 string in string("e", loc int , "Hello mate"); ¢ تُرجع القيمة true ¢ string in string("z", loc int , "word"); ¢ تُرجع خطأ ¢
// مثال في لغة C#: "Hello mate" .Contains ( "e" ); // تُرجع القيمة true، " word" .Contains ( " z" ); // تُرجع القيمة falseمثال في بايثون: "e" في "Hello mate" تُرجع القيمة true، "z" في "word" تُرجع القيمة false# مثال في راكو "صباح الخير!" . يحتوي على ( 'z' ) # يُرجع خطأ "¡Buenos días!" . يحتوي على ( 'í' ) ; # يُرجع صحيح"مثال في لغة سمول توك" "Hello mate" includesSubstring: 'e' " تُرجع القيمة true " " word " includesSubstring: 'z' " تُرجع القيمة falseالمساواة
يختبر هذا الأمر ما إذا كانت سلسلتان نصيتان متساويتان. انظر أيضًا #Compare و #Compare . إن إجراء عمليات التحقق من المساواة باستخدام دالة Compare العامة مع نتيجة عددية صحيحة ليس مربكًا للمبرمج فحسب، بل غالبًا ما يكون عملية مكلفة للغاية؛ وهذا ينطبق بشكل خاص عند استخدام " سلاسل C ".
| شكل | اللغات |
|---|---|
string1 == string2 | بايثون ، سي++ (STL)، سي# ، كوبرا ، جو ، جافا سكريبت (متشابهة)، بي إتش بي (متشابهة)، روبي ، رست ، [ 13 ] إرلانج ، هاسكل ، لوا ، دي ، ماثيماتيكا ، سويفت |
string1 === string2 | جافا سكريبت ، بي إتش بي |
string1 == string2string1 .EQ. string2 | فورتران |
strcmp(string1, string2) == 0 | ج |
(string=? string1string2) | مخطط |
(string= string1string2) | لغة Common 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[ string1 = string2 ] | بورن شل |
string1 eq string2 | بيرل ، راكو ، تي سي إل |
string1.equals(string2) | كوبرا ، جافا |
string1.Equals(string2) | سي شارب |
string1 -eq string2[string]::Equals(string1, string2) | ويندوز باور شيل |
[string1 isEqualToString:string2][string1 isEqual:string2] | لغة البرمجة Objective-C ( NSString *فقط) |
string1 ≡ string2 | APL |
string1.eq(string2) | الصدأ [ 13 ] |
// مثال في لغة C# "hello" == "world" // يُرجع خطأمثال في فيجوال بيسك: "hello" = "world" يُرجع خطأً# أمثلة في بيرل 5 'hello' eq 'world' # تُرجع 0 'hello' eq 'hello' # تُرجع 1# أمثلة في راكو 'hello' eq 'world' # تُرجع خطأ 'hello' eq 'hello' # تُرجع صحيحمثال في ويندوز باور شيل "hello" -eq "world" يُرجع خطأ⍝ مثال في لغة APL : 'hello' ≡ 'world' ⍝ تُرجع 0يجد
| تعريف | find(string,substring)تُرجع عددًا صحيحًا |
|---|---|
| وصف | تُعيد هذه الدالة موضع بداية أول ظهور للسلسلة الفرعية في السلسلة النصية . إذا لم يتم العثور على السلسلة الفرعية، فإن معظم هذه الدوال تُعيد قيمة فهرس غير صالحة - -1 حيث تبدأ الفهارس من الصفر، و0 حيث تبدأ من الواحد - أو قيمة تُفسَّر على أنها خطأ منطقي (FALSE). |
| متعلق ب | instrev |
| شكل | اللغات | في حالة عدم العثور عليه |
|---|---|---|
string in string(substring, pos, string[startpos:]) | ALGOL 68 | يُرجع قيمة منطقية (BOOL): TRUE أو FALSE، والموضع في REF INT pos. |
InStr(«startpos,»string,substring) | VB (تبدأ المراكز من 1) | يُرجع 0 |
INSTR$(string,substring) | المستوى الأساسي (تبدأ المواضع من 1) | يُرجع 0 |
index(string,substring) | أوك | يُرجع 0 |
index(string,substring«,startpos») | بيرل 5 | يُرجع -1 |
index(string,substring«,startpos»)string.index(substring,«,startpos») | راكو | لا توجد نتائج |
instr(«startpos,»string,substring) | فري بيسيك | يُرجع 0 |
strpos(string,substring«,startpos») | PHP | يُرجع خطأ |
locate(string, substring) | إنجريس | يُرجع طول السلسلة + 1 |
strstr(string, substring) | C و C++ ( فقط، تُرجع مؤشرًا إلى الحرف الأول)char* | يُرجع قيمة فارغة (NULL) |
std.string.indexOf(string, substring) | د | يُرجع -1 |
pos(string, substring«, startpos») | سيد7 | يُرجع 0 |
strings.Index(string, substring) | يذهب | يُرجع -1 |
pos(substring, string) | باسكال ، أوبجكت باسكال ( دلفي ) | يُرجع 0 |
pos(substring, string«,startpos») | ريكس | يُرجع 0 |
string.find(substring«,startpos») | لغة C++ (STL) | تُرجع std::string::npos |
string.find(substring«,startpos«,endpos»») | بايثون | يُرجع -1 |
string.index(substring«,startpos«,endpos»») | يُثير خطأ القيمة | |
string.index(substring«,startpos») | روبي | لا يُرجع قيمة |
string.indexOf(substring«,startpos») | جافا ، جافا سكريبت | يُرجع -1 |
string.IndexOf(substring«,startpos«, charcount»») | VB .NET ، C# ، Windows PowerShell ، F# | يُرجع -1 |
string:str(string, substring) | إرلانغ | يُرجع 0 |
(string-contains stringsubstring) | المخطط (SRFI 13) | العائدات |
(search substringstring) | لغة الشفرة الشائعة | لا يُرجع أي شيء |
(string-index substringstring) | لغة ISLISP | عمليات الإرجاعnil |
List.findIndex (List.isPrefixOf substring) (List.tails string) | هاسكل (تعيد الفهرس فقط ) | لا يُرجع أي شيء |
Str.search_forward (Str.regexp_string substring) string 0 | أوكاميل | يُثير خطأ Not_found |
Substring.size (#1 (Substring.position substring (Substring.full string))) | لغة الآلة القياسية | طول السلسلة المرجعية |
[string rangeOfString:substring].location | لغة البرمجة Objective-C ( NSString *فقط) | تُرجع NSNotFound |
string.find(string, substring)(string):find(substring) | لغة لوا | لا يُرجع قيمة |
string indexOfSubCollection: substring startingAt: startpos ifAbsent: aBlockstring findString: substring startingAt: startpos | المحادثات القصيرة ( سكويك ، فارو ) | تقييم aBlock، وهو عبارة عن إغلاق كتلة (أو أي كائن يفهم القيمة)، يُرجع 0 |
startpos = INDEX(string, substring «,back» «, kind») | فورتران | تُرجع الدالة 0 إذا لم تكن السلسلة الفرعية موجودة في السلسلة؛ وتُرجع LEN(string)+1 إذا كانت السلسلة الفرعية فارغة. |
POSITION(substring IN string) | SQL | تُرجع القيمة 0 (تبدأ المواضع من 1) |
index(string, substring, startpos ) | PL/I [ 19 ] | تُرجع القيمة 0 (تبدأ المواضع من 1) |
index(string, substring, occurrence ) | اختر الأساسي | تُرجع القيمة 0 إذا لم يكن ظهور السلسلة الفرعية موجودًا في السلسلة؛ (تبدأ المواضع من 1) |
string.indexOf(substring«,startpos«, charcount»») | الكوبرا | يُرجع -1 |
string first substring string startpos | تي سي إل | يُرجع -1 |
(substring⍷string)⍳1 | APL | تُرجع 1 + آخر موضع في السلسلة |
string.find(substring) | الصدأ [ 20 ] | عمليات الإرجاعNone |
أمثلة
- لغة الشفرة الشائعة
( ابحث عن "e" "Hello mate" ) ؛ يُرجع 1 ( ابحث عن "z" "word" ) ؛ يُرجع NIL
- سي شارب
"Hello mate" .IndexOf ( " e" ); // تُرجع 1 "Hello mate" .IndexOf ( " e" , 4 ); // تُرجع 9 "word" .IndexOf ( " z" ); // تُرجع -1
- راكو
"مرحباً!" . index ( 'e' ) # تُرجع 1 "مرحباً!" . index ( 'z' ) # تُرجع Nil
- مخطط
( استخدام الوحدات ( srfi srfi-13 )) ( السلسلة تحتوي على "Hello mate" "e" ) ؛ تُرجع 1 ( السلسلة تحتوي على "word" "z" ) ؛ تُرجع #f
- فيجوال بيسك
أمثلة في InStr ( "Hello mate" , "e" ) ' تُرجع 2، InStr ( 5 , "Hello mate" , "e" ) ' تُرجع 10، InStr ( "word" , "z" ) ' تُرجع 0
- أحاديث قصيرة
'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 ] "يُثير استثناءً"
ابحث عن الشخصية
| تعريف | find_character(string,char)تُرجع عددًا صحيحًا |
|---|---|
| وصف | تُعيد هذه الدالة موضع بداية أول ظهور للحرف char في السلسلة النصية . إذا لم يتم العثور على الحرف، فإن معظم هذه الدوال تُعيد قيمة فهرس غير صالحة - -1 حيث تبدأ الفهارس من الصفر، و0 حيث تبدأ من الواحد - أو قيمة منطقية تُفسَّر على أنها خطأ (FALSE). يمكن تحقيق ذلك كحالة خاصة من الدالة #Find ، باستخدام سلسلة نصية مكونة من حرف واحد؛ ولكن قد يكون من الأسهل أو الأكثر كفاءة في العديد من اللغات تحديد موقع حرف واحد فقط. كذلك، في العديد من اللغات، تُعتبر الأحرف والسلاسل النصية أنواعًا مختلفة، لذا من الملائم وجود مثل هذه الدالة. |
| متعلق ب | يجد |
| شكل | اللغات | في حالة عدم العثور عليه |
|---|---|---|
char in string(char, pos, string[startpos:]) | ALGOL 68 | تُرجع قيمة منطقية (BOOL) : TRUE أو FALSE ، والموضع في REF INT pos . |
instr(string, any char«,startpos»)(char، يمكن أن يحتوي على أكثر من حرف واحد، وفي هذه الحالة يتم إرجاع موضع الظهور الأول لأي منها.) | فري بيسيك | يُرجع 0 |
strchr(string,char) | C و C++ ( فقط، تُرجع مؤشرًا إلى حرف)char* | يُرجع قيمة فارغة (NULL) |
std.string.find(string, dchar) | د | يُرجع -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») | جافا ، جافا سكريبت | يُرجع -1 |
string.IndexOf(char«,startpos«, charcount»») | VB .NET ، C# ، Windows PowerShell ، F# | يُرجع -1 |
(position charstring) | لغة الشفرة الشائعة | لا يُرجع أي شيء |
(char-index charstring) | لغة ISLISP | لا يُرجع قيمة |
List.elemIndex charstring | هاسكل (إرجاع )Just index | لا يُرجع أي شيء |
String.index stringchar | أوكاميل | يُثير خطأ Not_found |
position = SCAN (string, set «, back» «, kind»)position = VERIFY (string, set «, back» «, kind»)[a] | فورتران | تُرجع القيمة صفر |
string indexOf: char ifAbsent: aBlockstring indexOf: charstring includes: char | أحاديث قصيرة | تقييم aBlockأي كائن BlockClosure(أو أي كائن يفهم القيمة) يُرجع 0 أو يُرجع trueأوfalse |
index(string, char, startpos ) | PL/I [ 21 ] | تُرجع القيمة 0 (تبدأ المواضع من 1) |
string.index(?char) | روبي | لا يُرجع قيمة |
strpos(string,char,startpos) | PHP | تُرجع القيمة خطأ |
string.indexOf(char«,startpos«, charcount»») | الكوبرا | يُرجع -1 |
string⍳char | APL | تُرجع 1 + آخر موضع في السلسلة |
string.find(substring) | الصدأ [ 20 ] | لا يُرجع أي قيمة |
// أمثلة بلغة C# : "Hello mate" .IndexOf ( 'e' ); // تُرجع 1، "word" .IndexOf ( 'z' ); // تُرجع -1أمثلة في لغة Common Lisp : ( الموضع #\e "Hello mate" ) ؛ تُرجع 1؛ ( الموضع #\z "word" ) ؛ تُرجع NIL^أ عند إعطاء مجموعة من الأحرف، تُرجع الدالة SCAN موضع أول حرف تم العثور عليه، [ 22 ] بينما تُرجع الدالة VERIFY موضع أول حرف لا ينتمي إلى المجموعة. [ 23 ]
شكل
| تعريف | format(formatstring, items)سلسلة نصية مُعادة |
|---|---|
| وصف | يُعيد هذا الأمر تمثيلاً نصياً منسقاً لعنصر واحد أو أكثر. |
| شكل | اللغات | صيغة سلسلة التنسيق |
|---|---|---|
associate(file, string); putf(file, $formatstring$, items) | ALGOL 68 | ألغول |
Format(item, formatstring) | VB | |
sprintf(formatstring, items) | بيرل ، بي إتش بي ، راكو ، روبي | ج |
item.fmt(formatstring) | راكو | ج |
io_lib:format(formatstring, items) | إرلانغ | |
sprintf(outputstring, formatstring, items) | ج | ج |
std::format(formatstring, items) | سي++ ( سي++20 ) | بايثون |
std.string.format(formatstring, items) | د | ج |
Format(formatstring, items) | أوبجكت باسكال ( دلفي ) | |
fmt.Sprintf(formatstring, items) | يذهب | ج |
printfformatstringitems | يونكس | ج |
formatstring % (items) | بايثون ، روبي | ج |
formatstring.format(items) | بايثون | .شبكة |
fformatstring | بايثون 3 | |
Printf.sprintf formatstring[ 24 ]items | OCaml ، F# | ج |
Text.Printf.printf formatstringitems | هاسكل ( GHC ) | ج |
formatstring printf: items | أحاديث قصيرة | ج |
String.format(formatstring, items) | جافا | ج |
String.Format(formatstring, items) | VB .NET ، C# ، F# | .شبكة |
(format formatstringitems) | المخطط (SRFI 28) | التلعثم |
(format nil formatstringitems) | لغة الشفرة الشائعة | التلعثم |
(format formatstringitems) | كلوجر | التلعثم |
formatstring -f items | ويندوز باور شيل | .شبكة |
[NSString stringWithFormat:formatstring, items] | لغة البرمجة Objective-C ( NSString *فقط) | ج |
String(format:formatstring, items) | سويفت (الأساسية) | ج |
string.format(formatstring, items)(formatstring):format(items) | لغة لوا | ج |
WRITE (outputstring, formatstring) items | فورتران | فورتران |
put string(string) edit(items)(format) | PL/I | PL/I (مشابهة للغة فورتران) |
String.format(formatstring, items) | الكوبرا | .شبكة |
format formatstring items | تي سي إل | ج |
formatnumbers ⍕ itemsformatstring ⎕FMT items | APL | APL |
format!(formatstring, items) | الصدأ [ 25 ] | بايثون |
// مثال في لغة C# String.Format ( " My {0} costs {1:C2}" , "pen" , 19.99 ); // يُرجع "My pen costs $19.99"// مثال في لغة أوبجكت باسكال (دلفي) Format ( 'My %s costs $%2f' , [ 'pen' , 1 9.99 ]) ; // يُرجع "My pen costs $19.99"// مثال في جافا String.format( " My % s costs $%2f" , "pen" , 19.99 ); // يُرجع "My pen costs $19.99"# أمثلة في Raku sprintf "My %s costs \$%.2f" , "pen" , 19.99 ; # تُرجع "My pen costs $19.99" 1 . fmt ( "%04d" ); # تُرجع "0001"# مثال في بايثون "My %s cost $ %.2f " % ( "pen" , 19.99 ); # يُرجع "My pen cost $19.99" "My {0} cost $ {1:.2f} " . format ( "pen" , 19.99 ); # يُرجع "My pen cost $19.99"#مثال في بايثون 3.6+ pen = "pen" f "My { pen } costs { 19.99 } " #إرجاع "My pen costs 19.99"مثال في لغة Scheme ( تنسيق "My ~a costs $~1,2F" "pen" 19.99 ) ؛ يُرجع "My pen costs $19.99"/* مثال بلغة PL/I */ put string ( some_string ) edit ( 'My ' , 'pen' , ' costs' , 19.99 )( a , a , a , p '$$$V.99' ) /* تُرجع "My pen costs $19.99" */عدم المساواة
يختبر هذا الأمر ما إذا كانت سلسلتان نصيتان غير متساويتين. انظر أيضًا #Equality .
| شكل | اللغات |
|---|---|
string1nestring2string1 NE string2 | ALGOL 68 – يظهر المعامل " ne " بخط غامق . |
string1 /= string2 | ألغول 68 ، أدا ، إرلانج ، فورتران ، هاسكل |
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<> string1string2) | المخطط (SRFI 13) |
(string/= string1string2) | لغة الشفرة الشائعة |
(string/= string1string2) | لغة ISLISP |
(not= string1string2) | كلوجر |
string1 != string2 | C++ (STL)، C# ، Go ، JavaScript (غير متشابهة)، PHP (غير متشابهة)، Python ، Ruby ، Rust ، [ 13 ] Swift ، D ، Mathematica |
string1 !== string2 | جافا سكريبت ، بي إتش بي |
string1 \= string2 | ريكس |
string1 ¬= string2 | PL/I |
test string1 != string2[ string1 != string2 ] | بورن شل |
string1 -ne string2 | ويندوز باور شيل |
string1 ~= string2 | لوا ، سمول توك |
string1 ≢ string2 | APL |
string1.ne(string2) | الصدأ [ 13 ] |
// مثال في لغة C# "hello" != "world" // يُرجع القيمة trueمثال في فيجوال بيسك: "hello" <> "world" ' يُرجع القيمة true;; مثال في كلوجر ( not= "hello" "world" ) ; ⇒ صحيح# مثال في بيرل 5 'hello' ne 'world' # يُرجع 1# مثال في راكو 'hello' ne 'world' # يُرجع القيمة Trueمثال في ويندوز باور شيل "hello" -ne "world" يُرجع القيمة trueفِهرِس
انظر #ابحث
فهرس
انظر #ابحث
آلة موسيقية
انظر #ابحث
instrev
انظر إلى البحث
ينضم
| تعريف | join(separator, list_of_strings)تُرجع قائمة من السلاسل النصية المتصلة بفاصل. |
|---|---|
| وصف | يجمع قائمة السلاسل النصية في سلسلة نصية جديدة، مع وجود سلسلة فاصلة بين كل سلسلة فرعية. عكس عملية التقسيم . |
| متعلق ب | sprintf |
| شكل | اللغات |
|---|---|
std.string.join(array_of_strings, separator) | د |
string:join(list_of_strings, separator) | إرلانغ |
join(separator, list_of_strings) | بيرل ، بي إتش بي ، راكو |
implode(separator, array_of_strings) | PHP |
separator.join(sequence_of_strings) | بايثون ، سويفت 1.x |
array_of_strings.join(separator) | روبي ، جافا سكريبت ، راكو ، راست [ 26 ] |
(string-join array_of_stringsseparator) | المخطط (SRFI 13) |
(format nil "~{~a~^separator~}" array_of_strings) | لغة الشفرة الشائعة |
(clojure.string/join separatorlist_of_strings)(apply str (interpose separatorlist_of_strings)) | كلوجر |
strings.Join(array_of_strings, separator) | يذهب |
join(array_of_strings, separator) | سيد7 |
String.concat separatorlist_of_strings | أوكاميل |
String.concatWith separatorlist_of_strings | لغة الآلة القياسية |
Data.List.intercalate separatorlist_of_strings | هاسكل ( 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) | جافا 8+ |
&{$OFS=$separator; "$array_of_strings"}array_of_strings -join separator | ويندوز باور شيل |
[array_of_strings componentsJoinedByString:separator] | لغة البرمجة Objective-C ( NSString *فقط) |
table.concat(table_of_strings, separator) | لغة لوا |
collectionOfAnything joinUsing: separator | المحادثات القصيرة ( سكويك ، فارو ) |
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""مثال في لغة سمول توك" #( 'a' 'b' 'c' ) joinUsing: '-' " 'abc' "# مثال في بيرل 5 join ( '-' , ( 'a' , 'b' , 'c' )); # 'abc'# مثال في راكو <ab c> . join ( '-' ); # 'abc'# مثال في بايثون "-" . join ([ "a" , "b" , "c" ]) # 'abc'# مثال في روبي [ "a" , "b" , "c" ]. join ( "-" ) # 'abc'مثال في لغة Scheme ( استخدام الوحدات ( srfi srfi-13 )) ( دمج السلاسل ' ( "a" "b" "c" ) "-" ) ; "abc"فهرس الأخير لـ
انظر إلى البحث
غادر
| تعريف | left(string,n)سلسلة نصية مُعادة |
|---|---|
| وصف | تُعيد هذه الدالة الجزء الأيسر (n) من السلسلة النصية. إذا كان n أكبر من طول السلسلة، فإن معظم التطبيقات تُعيد السلسلة كاملةً (مع وجود استثناءات - انظر أمثلة التعليمات البرمجية). بالنسبة لترميزات ذات أطوال متغيرة مثل UTF-8 و UTF-16 و Shift-JIS ، قد يكون من الضروري حذف مواضع السلسلة في النهاية لتجنب السلاسل غير الصالحة. |
| شكل | اللغات |
|---|---|
| آدا |
substr(string, 0, n) | AWK (يغير السلسلة النصية)، بيرل ، PHP ، راكو |
LEFT$(string,n) | لغة بيسك ، لغة فيجوال بيسك |
left(string,n) | VB ، FreeBASIC ، Ingres ، Pick Basic |
strncpy(string2, string, n) | مكتبة C القياسية |
string.substr(0,n) | C++ (STL)، راكو |
[string substringToIndex:n] | لغة البرمجة Objective-C ( NSString *فقط) |
| كلوجر |
string[0 .. n] | د [ 27 ] |
string:substr(string, start, length) | إرلانغ |
(subseq string 0 n) | لغة الشفرة الشائعة |
string[:n] | كوبرا ، جو ، بايثون |
left(string,n «,padchar») | ريكس ، إيرلانغ |
string[0, n]string[0..n - 1] | روبي |
string[1, n] | اختر الأساسي |
string[ .. n] | سيد7 |
string.Substring(0,n) | VB .NET ، C# ، Windows PowerShell ، F# |
leftstr(string, n) | باسكال ، أوبجكت باسكال ( دلفي ) |
copy (string,1,n) | توربو باسكال |
string.substring(0,n) | جافا ، [ 28 ] جافا سكريبت |
(string-take stringn) | المخطط (SRFI 13) |
take nstring | هاسكل |
String.extract (string, n, NONE) | لغة الآلة القياسية |
String.sub string 0 n | OCaml [ 29 ] |
string.[..n] | فا# |
string.sub(string, 1, n)(string):sub(1, n) | لغة لوا |
string first: n | المحادثات القصيرة ( سكويك ، فارو ) |
string(:n) | فورتران |
StringTake[string, n] | Mathematica [ 30 ] |
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) | الصدأ [ 31 ] |
# مثال في راكو "Hello, there!" . substr ( 0 , 6 ); # يُرجع "Hello,/* أمثلة بلغة Rexx */ left ( "abcde" , 3 ) /* تُرجع "abc" */ left ( "abcde" , 8 ) /* تُرجع "abcde " */ left ( "abcde" , 8 , "*" ) /* تُرجع "abcde***" */أمثلة في لغة Scheme ( استخدام الوحدات ( srfi srfi-13 )) ( أخذ السلسلة "abcde" ، 3 ) ؛ تُرجع "abc" ( أخذ السلسلة "abcde" ، 8 ) ؛ خطأأمثلة في فيجوال بيسك: Left ( "sandroguidi" , 3 ) تُرجع "san" Left ( "sandroguidi" , 100 ) تُرجع "sandroguidi"لين
انظر طول المنزل
طول
| تعريف | length(string)تُرجع عددًا صحيحًا |
|---|---|
| وصف | تُعيد هذه الدالة طول السلسلة النصية (باستثناء حرف الإنهاء الفارغ وأي معلومات هيكلية داخلية أخرى للسلسلة). أما السلسلة النصية الفارغة، فيُعاد طولها صفر. |
| شكل | المرتجعات | اللغات |
|---|---|---|
string'Length | | آدا |
UPB string | | ALGOL 68 |
echo "${#string_param}" | | سحق |
length(string) | | إنجريس ، بيرل 5، باسكال ، أوبجكت باسكال ( دلفي )، ريكس ، سيد7 ، إس كيو إل ، بي إل/آي |
len(string) | | لغة بيسك ، فري بيسك ، بايثون ، جو ، اختر بيسك |
length(string), string:len(string) | | إرلانغ |
Len(string) | | VB ، اختر الأساسي |
string.Length | عدد وحدات ترميز UTF-16 | VB .NET ، C# ، Windows PowerShell ، F# |
chars(string)string.chars | عدد الوحدات الكتابية (NFG) | راكو |
codes(string)string.codes | عدد نقاط ترميز يونيكود | راكو |
string.size OR string.length | عدد البايتات [ 32 ] | روبي |
strlen(string) | عدد البايتات | لغة C ، لغة PHP |
string.length() | | لغة C++ (STL) |
string.length | | كوبرا ، دي ، جافا سكريبت |
string.length() | عدد وحدات ترميز UTF-16 | جافا |
(string-length string) | | مخطط |
(length string) | | لغة Common Lisp ، لغة ISLISP |
(count string) | | كلوجر |
String.length string | | أوكاميل |
size string | | لغة الآلة القياسية |
length string | عدد نقاط ترميز يونيكود | هاسكل |
string.length | عدد وحدات ترميز UTF-16 | لغة البرمجة Objective-C ( NSString *فقط) |
string.characters.count | عدد الأحرف | سويفت (2.x) |
count(string) | عدد الأحرف | سويفت (1.2) |
countElements(string) | عدد الأحرف | سويفت (1.0–1.1) |
string.len(string)(string):len()#string | | لغة لوا |
string size | | أحاديث قصيرة |
LEN(string)LEN_TRIM(string) | | فورتران |
StringLength[string] | | ماثيماتيكا |
«FUNCTION» LENGTH(string)أو
| عدد الأحرف وعدد البايتات، على التوالي | كوبول |
string length string | سلسلة عشرية تحدد عدد الأحرف | تي سي إل |
≢ string | APL | |
string.len() | عدد البايتات | الصدأ [ 33 ] |
string.chars().count() | عدد نقاط ترميز يونيكود | الصدأ [ 34 ] |
// أمثلة بلغة C#: " hello " .Length ; // تُرجع 5 """ .Length ; // تُرجع 0# أمثلة في لغة إرلانج : string: len ( "hello" ). % تُرجع 5 string : len ( "" ). % تُرجع 0# أمثلة في بيرل 5 length ( "hello" ); # تُرجع 5 length ( "" ); # تُرجع 0أمثلة في راكو "" . chars ; chars "" ; كلاهما يُرجع 0 "" . codes ; codes "" ; كلاهما يُرجع 0أمثلة في فيجوال بيسك: `Len ( "hello" ) ` تُرجع 5، و`Len ( "" ) ` تُرجع 0.// أمثلة بلغة Objective-C [ @"hello" Length ] // تُرجع 5 [ @"" Length ] // تُرجع 0-- أمثلة في لغة Lua ( "hello" ): len () -- تُرجع 5 # "" -- تُرجع 0تحديد الموقع
انظر #ابحث
أحرف صغيرة
| تعريف | lowercase(string)سلسلة نصية مُعادة |
|---|---|
| وصف | يُعيد السلسلة بأحرف صغيرة. |
| شكل | اللغات |
|---|---|
LCase(string) | VB |
lcase(string) | فري بيسيك |
lc(string) | بيرل ، راكو |
string.lc | راكو |
tolower(char) | ج [ 35 ] |
std.string.toLower(string) | د |
transform(string.begin(), string.end(), result.begin(), ::tolower)[ 36 ] | C++ [ 37 ] |
lowercase(string) | أوبجكت باسكال ( دلفي ) |
strtolower(string) | PHP |
lower(string) | سيد7 |
${string_param,,} | سحق |
echo "string" |tr 'A-Z' 'a-z' | يونكس |
string.lower() | بايثون |
downcase(string) | اختر الأساسي |
string.downcase | روبي [ 38 ] |
strings.ToLower(string) | يذهب |
(string-downcase string) | مخطط (R6RS)، لغة ليسب الشائعة |
(lower-case string) | كلوجر |
String.lowercase string | أوكاميل |
String.map Char.toLower string | لغة الآلة القياسية |
map Char.toLower string | هاسكل |
string.toLowerCase() | جافا ، جافا سكريبت |
to_lower(string) | إرلانغ |
string.ToLower() | VB .NET ، C# ، Windows PowerShell ، F# |
string.lowercaseString | أوبجكتيف-سي ( NSString *فقط)، سويفت (فاونديشن) |
string.lower(string)(string):lower() | لغة لوا |
string asLowercase | أحاديث قصيرة |
LOWER(string) | SQL |
lowercase(string) | PL/I [ 9 ] |
ToLowerCase[string] | ماثيماتيكا |
«FUNCTION» LOWER-CASE(string) | كوبول |
string.toLower | الكوبرا |
string tolower string | تي سي إل |
string.to_lowercase() | الصدأ [ 39 ] |
// مثال بلغة C#: "هل تعني كلمة Wiki السرعة؟" . ToLower (); // "هل تعني كلمة Wiki السرعة؟"مثال في لغة Scheme ( استخدام الوحدات ( srfi srfi-13 )) ( سلسلة نصية بأحرف صغيرة "Wiki تعني سريع؟" ) ؛ "wiki تعني سريع؟"/* مثال بلغة C */ #include <ctype.h> #include <stdio.h>int main ( void ) { char s [] = "Wiki means fast?" ; for ( int i = 0 ; i < sizeof ( s ) - 1 ; ++ i ) { // تحويل الأحرف في مكانها، حرفًا حرفًا s [ i ] = tolower ( s [ i ]); } printf ( string ); // "wiki means fast?" return 0 ; }# مثال في راكو "ويكي تعني سريع؟" . lc ; "ويكي تعني سريع؟"منتصف
انظر سلسلة فرعية
تقسيم
| تعريف | <string>.partition( separator ) تُرجع السلسلة الفرعية قبل الفاصل؛ الفاصل؛ ثم السلسلة الفرعية بعد الفاصل. |
|---|---|
| وصف | يقسم السلسلة المعطاة بواسطة الفاصل ويعيد السلاسل الفرعية الثلاث التي تشكل معًا السلسلة الأصلية. |
| شكل | اللغات | تعليقات |
|---|---|---|
string.partition(separator) | بايثون ، روبي (1.9+) | |
lists:partition(pred, string) | إرلانغ | |
split /(separator)/, string, 2 | بيرل 5 | |
split separator, string, 2string.split( separator, 2 ) | راكو | لا يشترط أن يكون الفاصل تعبيرًا منتظمًا |
# أمثلة في بايثون "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', "", "")# أمثلة في بيرل 5 / راكو 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');يستبدل
| تعريف | replace(string, find, replace)سلسلة نصية مُعادة |
|---|---|
| وصف | تُعيد هذه الدالة سلسلة نصية مع تغيير نتائج البحث لاستبدالها بـ . |
| شكل | اللغات |
|---|---|
changestr(find, string, replace) | ريكس |
std.string.replace(string, find, replace) | د |
Replace(string, find, replace) | VB |
replace(string, find, replace) | سيد7 |
change(string, find, replace) | اختر الأساسي |
string.Replace(find, replace) | سي شارب ، إف شارب ، في بي دوت نت |
str_replace(find, replace, string) | PHP |
re:replace(string, find, replace, «{return, list}») | إرلانغ |
string.replace(find, replace) | كوبرا ، جافا (1.5+)، بايثون ، راست [ 40 ] |
string.replaceAll(find_regex, replace)[41] | جافا |
string.gsub(find, replace) | روبي |
string =~ s/find_regex/replace/g[41] | بيرل 5 |
string.subst(find, replace, :g) | راكو |
string.replace(find, replace, "g") [42]string.replace(/find_regex/g, replace)[41] | جافا سكريبت |
echo "string" |sed 's/find_regex/replace/g'[41] | يونكس |
${string_param//find_pattern/replace} | سحق |
string.replace(find, replace)string -replace find_regex, replace[41] | ويندوز باور شيل |
Str.global_replace (Str.regexp_string find) replacestring | أوكاميل |
[string stringByReplacingOccurrencesOfString:find withString:replace] | لغة البرمجة Objective-C ( NSString *فقط) |
string.stringByReplacingOccurrencesOfString(find, withString:replace) | سويفت (الأساسية) |
string.gsub(string, find, replace)(string):gsub(find, replace) | لغة لوا |
string copyReplaceAll: find with: replace | المحادثات القصيرة ( سكويك ، فارو ) |
string map {findreplace} string | تي سي إل |
StringReplace[string, find -> replace] | ماثيماتيكا |
strings.Replace(string, find, replace, -1) | يذهب |
INSPECT string REPLACING ALL/LEADING/FIRST find BY replace | كوبول |
find_regex ⎕R replace_regex ⊢ string | APL |
// أمثلة بلغة C#: " effffff" .Replace ( "f" , "jump" ); // تُرجع "ejumpjumpjumpjumpjumpjump" "blah" .Replace ( " z" , "y" ); // تُرجع "blah"// أمثلة بلغة جافا : "effffff" .replace ( "f" , "jump" ); // تُرجع "ejumpjumpjumpjumpjumpjump" "effffff" .replaceAll ( " f*" , "jump" ); // تُرجع "ejump"// أمثلة في راكو "effffff" .subst ( "f" , "jump" , : g ); # تُرجع "ejumpjumpjumpjumpjumpjump" "blah" .subst ( " z" , "y" , : g ) ; # تُرجع "blah"أمثلة في فيجوال بيسك: استبدال ( "effffff" , "f" , "jump" ) ' يُرجع "ejumpjumpjumpjumpjumpjump" استبدال ( "blah" , "z" , "y" ) ' يُرجع "blah"# أمثلة في ويندوز باور شيل "effffff" -replace "f" , "jump" # تُرجع "ejumpjumpjumpjumpjumpjump" "effffff" -replace "f*" , "jump" # تُرجع "ejump"يعكس
| تعريف | reverse(string) |
|---|---|
| وصف | يعكس ترتيب الأحرف في السلسلة. |
| شكل | اللغات |
|---|---|
reverse string | بيرل 5، هاسكل |
flip stringstring.flip | راكو |
lists:reverse(string) | إرلانغ |
strrev(string) | PHP |
string[::-1] | بايثون |
(string-reverse string) | المخطط (SRFI 13) |
(reverse string) | لغة الشفرة الشائعة |
string.reverse | روبي ، D (تعديل السلسلة النصية) |
new StringBuilder(string).reverse().toString() | جافا |
std::reverse(string.begin(), string.end()); | لغة C++ ( std::stringفقط، لتعديل السلسلة النصية) |
StrReverse(string) | VB |
string.Reverse() | VB .NET ، C# |
implode (rev (explode string)) | لغة الآلة القياسية |
string | جافا سكريبت |
string.reverse(string)(string):reverse() | لغة لوا |
string reverse | أحاديث قصيرة |
StringReverse[string] | ماثيماتيكا |
reverse(string) | PL/I |
| كوبول |
string.toCharArray.toList.reversed.join() | الكوبرا |
String(string.characters.reverse()) | سويفت (2.x) |
String(reverse(string)) | سويفت (1.2) |
string reverse string | تي سي إل |
⌽string | APL |
string | الصدأ [ 43 ] |
echo string| rev | يونكس |
"مثال في لغة سمول توك: " عكس كلمة 'hello' " يُرجع 'olleh'"مثال في بيرل 5 لعكس كلمة "hello" يُرجع "olleh"# مثال في راكو "hello" .flip # يُرجع "olleh "# مثال في بايثون "hello" [:: - 1 ] # يُرجع "olleh"مثال في لغة Scheme ( استخدام الوحدات ( srfi srfi-13 )) ( عكس السلسلة "hello" ) ؛ يُرجع "olleh"rfind
| تعريف | rfind(string,substring)تُرجع عددًا صحيحًا |
|---|---|
| وصف | تُعيد هذه الدالة موضع بداية آخر ظهور للسلسلة الفرعية في السلسلة النصية . إذا لم يتم العثور على السلسلة الفرعية، فإن معظم هذه الدوال تُعيد قيمة فهرس غير صالحة - -1 حيث تبدأ الفهارس من الصفر، و0 حيث تبدأ من الواحد - أو قيمة تُفسَّر على أنها خطأ منطقي (FALSE). |
| متعلق ب | آلة موسيقية |
| شكل | اللغات | في حالة عدم العثور عليه |
|---|---|---|
InStrRev(«startpos,» string,substring) | VB | يُرجع 0 |
instrrev(«startpos,» string,substring) | فري بيسيك | يُرجع 0 |
rindex(string,substring«,startpos») | بيرل 5 | يُرجع -1 |
rindex(string,substring«,startpos»)string.rindex(substring«,startpos») | راكو | لا توجد نتائج |
strrpos(string,substring«,startpos») | PHP | يُرجع خطأ |
string.rfind(substring«,startpos») | لغة C++ (STL) | تُرجع std::string::npos |
std.string.rfind(string, substring) | د | يُرجع -1 |
string.rfind(substring«,startpos«, endpos»») | بايثون | يُرجع -1 |
string.rindex(substring«,startpos«, endpos»») | يُثير خطأ القيمة | |
rpos(string, substring«,startpos») | سيد7 | يُرجع 0 |
string.rindex(substring«,startpos») | روبي | لا يُرجع قيمة |
strings.LastIndex(string, substring) | يذهب | يُرجع -1 |
string.lastIndexOf(substring«,startpos») | جافا ، جافا سكريبت | يُرجع -1 |
string.LastIndexOf(substring«,startpos«, charcount»») | VB .NET ، C# ، Windows PowerShell ، F# | يُرجع -1 |
(search substringstring :from-end t) | لغة الشفرة الشائعة | لا يُرجع أي شيء |
[string rangeOfString:substring options:NSBackwardsSearch].location | لغة البرمجة Objective-C ( NSString *فقط) | تُرجع NSNotFound |
Str.search_backward (Str.regexp_string substring) string (Str.length string - 1) | أوكاميل | يُثير خطأ Not_found |
string.match(string, '.*()'..substring)string | لغة لوا | لا يُرجع قيمة |
Ada.Strings.Unbounded.Index(Source => string, Pattern => substring, Going => Ada.Strings.Backward) | آدا | يُرجع 0 |
string.lastIndexOf(substring«,startpos«, charcount»») | الكوبرا | يُرجع -1 |
string lastIndexOfString:substring | أحاديث قصيرة | يُرجع 0 |
string last substring string startpos | تي سي إل | يُرجع -1 |
| APL | يُرجع -1 |
string.rfind(substring) | الصدأ [ 44 ] | لا يُرجع أي قيمة |
أمثلة في لغة Common Lisp : ( search "e" "Hello mate" :from-end t ) ; تُرجع 9؛ ( search "z" "word" :from-end t ) ; تُرجع NIL// أمثلة بلغة C#: " Hello mate" .LastIndexOf ( "e" ); // تُرجع 9، " Hello mate" .LastIndexOf ( "e" , 4 ); // تُرجع 1، " word" .LastIndexOf ( "z" ); // تُرجع -1# أمثلة في بيرل 5 rindex ( "Hello mate" , "e" ); # تُرجع 9 rindex ( "Hello mate" , "e" , 4 ); # تُرجع 1 rindex ( "word" , "z" ); # تُرجع -1# أمثلة في راكو "Hello mate" .rindex ( "e" ); # تُرجع 9 "Hello mate" .rindex ( " e" , 4 ); # تُرجع 1 "word" .rindex ( ' z' ); # تُرجع Nilأمثلة في فيجوال بيسك: InStrRev ( "Hello mate" , "e" ) تُرجع 10 ، InStrRev ( 5 , "Hello mate" , "e" ) تُرجع 2، InStrRev ( "word" , "z" ) تُرجع 0يمين
| تعريف | right(string,n)سلسلة نصية مُعادة |
|---|---|
| وصف | تُعيد هذه الدالة الجزء الأيمن (n) من السلسلة النصية. إذا كان n أكبر من طول السلسلة، فإن معظم التطبيقات تُعيد السلسلة كاملةً (توجد استثناءات - انظر أمثلة التعليمات البرمجية). |
| شكل | اللغات |
|---|---|
| آدا |
Right(string,n) | VB |
RIGHT$(string,n) | أساسي |
right(string,n) | FreeBASIC ، Ingres ، Pick Basic |
strcpy(string2, string+n)( يجب ألا يتجاوز n طول السلسلة ) | ج |
string.Substring(string.Length()-n) | سي شارب |
string[len(string)-n:] | يذهب |
string.substring(string.length()-n) | جافا |
string.slice(-n) | جافا سكريبت [ 45 ] |
right(string,n «,padchar») | ريكس ، إيرلانغ |
substr(string,-n) | بيرل 5، بي إتش بي |
substr(string,*-n)string.substr(*-n) | راكو |
string[-n:] | الكوبرا ، البايثون |
${string_param: -n}(توجد مسافة بعد النقطتين الرأسيتين) | سحق |
string[n] | اختر الأساسي |
(string-take-right stringn) | المخطط (SRFI 13) |
string[-n..-1] | روبي |
string[$-n .. $] | د [ 46 ] |
String.sub string (String.length string - n) n | OCaml [ 29 ] |
string.sub(string, -n)(string):sub(-n) | لغة لوا |
string last: n | المحادثات القصيرة ( سكويك ، فارو ) |
StringTake[string, -n] | Mathematica [ 30 ] |
string (1:n) | كوبول |
¯n↑string. | APL |
string[n..]string.get(n..) | الصدأ [ 31 ] |
// أمثلة بلغة جافا؛ استخراج الأحرف الأربعة الأخيرة String str = "CarDoor" ; str . substring ( str . length () - 4 ); // تُرجع 'Door'# أمثلة في راكو "abcde" .substr (*- 3 ); # تُرجع "cde" " abcde " .substr (*- 8 ); # خطأ " خارج النطاق"/* أمثلة بلغة Rexx */ right ( "abcde" , 3 ) /* تُرجع "cde" */ right ( "abcde" , 8 ) /* تُرجع "abcde" */ right ( "abcde" , 8 , "*" ) /* تُرجع "***abcde" */أمثلة في لغة Scheme ( استخدام الوحدات ( srfi srfi-13 )) ( سلسلة نصية تأخذ اليمين "abcde" ، 3 ) ؛ تُرجع "cde" ( سلسلة نصية تأخذ اليمين "abcde" ، 8 ) ؛ خطأأمثلة في فيجوال بيسك: Right ( "sandroguidi" , 3 ) تُرجع "idi" و Right ( "sandroguidi" , 100 ) تُرجع "sandroguidi"التقسيم
| تعريف | <string>.rpartition( separator ) يبحث عن الفاصل من اليمين إلى اليسار داخل السلسلة ثم يعيد السلسلة الفرعية قبل الفاصل؛ الفاصل؛ ثم السلسلة الفرعية بعد الفاصل. |
|---|---|
| وصف | يقسم السلسلة المعطاة بواسطة الفاصل الموجود في أقصى اليمين ويعيد السلاسل الفرعية الثلاث التي تشكل معًا السلسلة الأصلية. |
| شكل | اللغات |
|---|---|
string.rpartition(separator) | بايثون ، روبي |
# أمثلة بلغة بايثون "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')شريحة
انظر سلسلة فرعية
ينقسم
| تعريف | تقوم الدالة <string>.split( separator [, limit ]) بتقسيم سلسلة نصية بناءً على الفاصل، ويمكنها اختيارياً تقسيمها إلى عدد محدود من السلاسل الفرعية. |
|---|---|
| وصف | تقسم هذه الدالة السلسلة النصية المُعطاة بناءً على عدد مرات ظهور الفاصل (وهو نفسه سلسلة نصية) وتُعيد قائمة (أو مصفوفة) من السلاسل الفرعية. إذا تم تحديد قيمة `limit` ، فبعد قراءة `limit - 1` فاصلًا، يتم تحويل باقي السلسلة إلى السلسلة الفرعية الأخيرة، بغض النظر عما إذا كانت تحتوي على فواصل أم لا. تتشابه تطبيقات Scheme وErlang، لكنها تختلف في عدة جوانب. يختلف JavaScript أيضًا في أنه يقطع السلسلة، ولا يضع باقي السلسلة في العنصر الأخير. انظر المثال هنا . سيستخدم تطبيق Cobra المسافات البيضاء افتراضيًا. عكس دالة ` join` . |
| شكل | اللغات |
|---|---|
split(/separator/, string«, limit») | بيرل 5 |
split(separator, string«, limit»)string.split(separator, «limit») | راكو |
explode(separator, string«, limit») | PHP |
string.split(separator«, limit-1») | بايثون |
string.split(separator«, limit») | جافا سكريبت ، جافا ، روبي |
string:tokens(string, sepchars) | إرلانغ |
strings.Split(string, separator)strings.SplitN(string, separator, limit) | يذهب |
(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»» | ويندوز باور شيل |
Str.split (Str.regexp_string separator) string | أوكاميل |
std.string.split(string, separator) | د |
[string componentsSeparatedByString:separator] | لغة البرمجة Objective-C ( NSString *فقط) |
string.componentsSeparatedByString(separator) | سويفت (الأساسية) |
TStringList.Delimiter, TStringList.DelimitedText | أوبجكت باسكال |
StringSplit[string, separator«, limit»] | ماثيماتيكا |
string.split«(sepchars«, limit«, options»»)» | الكوبرا |
split string separator | تي سي إل |
(separator≠string)⊂stringفي APL2 في Dyalog APL 16.0separator(≠⊆⊢)string | APL |
string.split(separator)
| الصدأ [ 47 ] |
// مثال في لغة C#: " abc,defgh,ijk" .Split ( ' ,' ); // {"abc", "defgh", "ijk"} "abc,defgh;ijk" .Split ( ',' , ';' ); // {"abc", "defgh", "ijk"}مثال في لغة إرلانج: سلسلة نصية : tokens ( "abc;defgh;ijk" , ";" ). % ["abc", "defgh", "ijk"]// أمثلة في جافا "abc,defgh,ijk" .split ( "," ); // {"abc", "defgh", "ijk"} "abc,defgh;ijk" .split ( ", " |" ); // {"abc", "defgh", "ijk" }{ مثال بلغة باسكال } 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 ;# أمثلة في بيرل 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')# أمثلة في راكو : '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
انظر إلى التنسيق
يجرد
انظر ستريم
strcmp
سلسلة فرعية
| تعريف | substring(string, startpos, endpos)يُرجع سلسلة نصيةsubstr(string, startpos, numChars) |
|---|---|
| وصف | تُعيد هذه الدالة جزءًا من سلسلة نصية بين الموضعين startpos و endpos ، أو جزءًا من سلسلة نصية طولها numChars تبدأ من الموضع startpos . يتم اقتطاع السلسلة الناتجة إذا كان عدد الأحرف المتبقية بعد الموضع startpos أقل من numChars . يُمثل endpos فهرس الحرف الأخير في السلسلة الفرعية. بالنسبة لترميزات ذات أطوال متغيرة مثل UTF-8 و UTF-16 و Shift-JIS ، قد يكون من الضروري حذف مواضع السلسلة في النهاية لتجنب السلاسل غير الصالحة. |
| شكل | اللغات |
|---|---|
string[startpos:endpos] | ALGOL 68 (تغييرات في فهرس الأساس) |
string (startpos .. endpos) | أدا (تغييرات في فهرس القاعدة) |
Mid(string, startpos, numChars) | VB |
mid(string, startpos, numChars) | فري بيسيك |
string[startpos+(⍳numChars)-~⎕IO] | APL |
MID$(string, startpos, numChars) | أساسي |
substr(string, startpos, numChars) | AWK (تغيير السلسلة النصية)، Perl 5، [ 48 ] [ 49 ] PHP [ 48 ] [ 49 ] |
substr(string, startpos, numChars)string.substr(startpos, numChars) | راكو [ 50 ] [ 51 ] |
substr(string, startpos «,numChars, padChar») | PL/I |
substr(string, startpos «,numChars, padChar») | ريكس |
string[startpos:endpos] | كوبرا ، بايثون ، [ 48 ] [ 52 ] جو |
string[startpos, numChars] | اختر الأساسي |
string[startpos, numChars]string[startpos .. endpos-1]string[startpos ... endpos] | روبي [ 48 ] [ 52 ] |
string[startpos .. endpos]string[startpos len numChars] | سيد7 |
string.slice(startpos«, endpos») | جافا سكريبت [ 48 ] [ 52 ] |
string.substr(startpos«, numChars») | لغة C++ (STL)، جافا سكريبت |
string.Substring(startpos, numChars) | VB .NET ، C# ، Windows PowerShell ، F# |
string.substring(startpos«, endpos») | جافا ، جافا سكريبت |
copy(string, startpos, numChars) | أوبجكت باسكال ( دلفي ) |
(substring stringstartposendpos) | مخطط |
(subseq stringstartposendpos) | لغة الشفرة الشائعة |
(subseq stringstartposendpos) | لغة ISLISP |
String.sub stringstartposnumChars | أوكاميل |
substring (string, startpos, numChars) | لغة الآلة القياسية |
string:sub_string(string, startpos, endpos)string:substr(string, startpos, numChars) | إرلانغ |
strncpy(result, string + startpos, numChars); | ج |
string[startpos .. endpos+1] | د |
take numChars $ drop startposstring | هاسكل |
[string substringWithRange:NSMakeRange(startpos, numChars)] | لغة البرمجة Objective-C ( NSString *فقط) |
string.[startpos..endpos] | فا# |
string.sub(string, startpos, endpos)(string):sub(startpos, endpos) | Lua [ 48 ] [ 52 ] |
string copyFrom: startpos to: endpos | أحاديث قصيرة |
string(startpos:endpos) | فورتران |
SUBSTRING(string FROM startpos «FOR numChars») | SQL |
StringTake[string, {startpos, endpos}] | Mathematica [ 48 ] [ 52 ] |
string (startpos:numChars) | كوبول |
${string_param:startpos:numChars} | سحق |
string range string startpos endpos | تي سي إل |
string[startpos..endpos]string.get(startpos..endpos) | الصدأ [ 31 ] |
// أمثلة بلغة C# : `"abc" .Substring ( 1 , 1 )`: // تُرجع "b" ` "abc" .Substring ( 1 , 2 )`: // تُرجع "bc" ` " abc " .Substring ( 1 , 6 ) ` : // خطأأمثلة في لغة Common Lisp : ( subseq "abc" 1 2 ) ; تُرجع "b" ( subseq "abc" 2 ) ; تُرجع "c"أمثلة في لغة إرلانج : string : substr ( "abc" , 2 , 1 ). % تُرجع "b" string : substr ( "abc" , 2 ). % تُرجع "bc"# أمثلة في بيرل 5 substr ( "abc" , 1 , 1 ); # تُرجع "b" substr ( "abc" , 1 ); # تُرجع "bc"# أمثلة في راكو "abc" .substr ( 1 , 1 ); # تُرجع "b" " abc " .substr ( 1 ); # تُرجع "bc"# أمثلة في بايثون "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) | فري بيسيك |
toupper(string) | AWK (يغير السلسلة النصية) |
uc(string) | بيرل ، راكو |
string.uc | راكو |
toupper(char) | ج (يعمل على حرف واحد) |
| C (سلسلة نصية / مصفوفة أحرف) |
std.string.toUpper(string) | د |
transform(string.begin(), string.end(), result.begin(), toupper)[36] | C++ [ 53 ] |
uppercase(string) | أوبجكت باسكال ( دلفي ) |
upcase(char) | كائن باسكال ( دلفي ) (يعمل على حرف واحد) |
strtoupper(string) | PHP |
upper(string) | سيد7 |
${string_param^^}(للتذكير: ^ يشير إلى الأعلى) | سحق |
echo "string" |tr 'a-z' 'A-Z' | يونكس |
translate(string)UPPER variablesPARSEUPPERVARSrcVarDstVar | ريكس |
string.upper() | بايثون |
upcase(string) | اختر الأساسي |
string.upcase | روبي [ 38 ] |
strings.ToUpper(string) | يذهب |
(string-upcase string) | سكيم ، كومون ليسب |
String.uppercase string | أوكاميل |
String.map Char.toUpper string | لغة الآلة القياسية |
map Char.toUpper string | هاسكل |
string.toUpperCase() | جافا ، جافا سكريبت |
string.uppercase() | كوتلين [ 54 ] |
to_upper(string) | إرلانغ |
string.ToUpper() | VB .NET ، C# ، Windows PowerShell ، F# |
string.uppercaseString | أوبجكتيف-سي ( NSString *فقط)، سويفت (فاونديشن) |
string.upper(string)(string):upper() | لغة لوا |
string asUppercase | أحاديث قصيرة |
UPPER(string) | SQL |
ToUpperCase[string] | ماثيماتيكا |
| كوبول |
string.toUpper | الكوبرا |
string toupper string | تي سي إل |
string.to_uppercase() | الصدأ [ 55 ] |
// مثال بلغة C# "هل تعني كلمة Wiki السرعة؟" . ToUpper (); // "هل تعني كلمة WIKI السرعة؟"# مثال في بيرل 5 uc ( "هل تعني ويكي السرعة؟" ); # "هل تعني ويكي السرعة؟"# مثال في راكو uc ( "هل تعني كلمة ويكي السرعة؟" ); # "هل تعني كلمة ويكي السرعة؟" "هل تعني كلمة ويكي السرعة؟" . uc ; # "هل تعني كلمة ويكي السرعة؟"/* مثال في Rexx */ ترجمة ( "ويكي تعني سريع؟" ) /* "ويكي تعني سريع؟" *//* مثال رقم ٢ */ أ = 'هذا مثال.' أ كبير /* "هذا مثال." *//* مثال رقم 3 */ A = 'upper using Translate Function.' Translate UPPER VAR A Z /* Z="UPPER USING TRANSLATE FUNCTION." */مثال في لغة Scheme ( استخدام الوحدات ( srfi srfi-13 )) ( تحويل الأحرف إلى أحرف كبيرة "Wiki يعني سريع؟" ) ؛ "WIKI يعني سريع؟"مثال في فيجوال بيسك UCase ( "Wiki تعني سريع؟" ) "WIKI تعني سريع؟"تقليم
trimأو stripيستخدم لإزالة المسافات البيضاء من بداية السلسلة أو نهايتها أو كليهما.
| مثال على الاستخدام | اللغات |
|---|---|
String.Trim([chars]) | سي شارب ، في بي.نت ، ويندوز باور شيل |
string.strip(); | د |
(.trim string) | كلوجر |
sequence [ predicate? ] trim | عامل |
| لغة الشفرة الشائعة |
(string-trim string) | مخطط |
string.trim() | جافا ، جافا سكريبت (1.8.1+، فايرفوكس 3.5+)، رست [ 56 ] |
Trim(String) | باسكال ، [ 57 ] كيو بيسك ، فيجوال بيسك ، دلفي |
string.strip() | بايثون |
strings.Trim(string, chars) | يذهب |
LTRIM(RTRIM(String)) | أوراكل SQL ، تي-SQL |
strip(string [,option, char]) | ريكس |
string:strip(string [,option, char]) | إرلانغ |
string.stripstring.lstripstring.rstrip | روبي |
string.trim | راكو |
trim(string) | PHP ، راكو |
[string | لغة Objective-C باستخدام Cocoa |
string withBlanksTrimmedstring withoutSpacesstring withoutSeparators | المحادثات القصيرة ( سكويك ، فارو ) |
strip(string) | ساس |
string trim $string | تي سي إل |
TRIM(string)TRIM(ADJUSTL(string)) | فورتران |
TRIM(string) | SQL |
TRIM(string)LTrim(string)RTrim(String) | كولد فيوجن |
String.trim string | OCaml 4+ |
لغات أخرى
في اللغات التي لا تحتوي على وظيفة تقليم مدمجة، عادة ما يكون من السهل إنشاء وظيفة مخصصة تنجز نفس المهمة.
APL
يمكن استخدام التعبيرات النمطية مباشرةً في لغة APL :
قص ← '^ +| +$' ⎕R ''أو بدلاً من ذلك، يمكن اتباع نهج وظيفي يجمع بين أقنعة منطقية تقوم بتصفية المسافات البادئة واللاحقة:
Trim ← { ⍵ /⍨ ( ∨ \ ∧ ∘ ⌽∨ \∘ ⌽ ) ' ' ≠ ⍵ }أو اعكس العملية وأزل المسافات البادئة، مرتين:
قص ← { ( ∨ \ ' ' ≠ ⍵ ) / ⍵ } ∘ ⌽ ⍣ 2أوك
في لغة AWK ، يمكن استخدام التعابير النمطية للتقليم:
ltrim ( v ) = gsub ( /^[ \t]+/ , "" , v ) rtrim ( v ) = gsub ( /[ \t]+$/ , "" , v ) Trim ( v ) = ltrim ( 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++. تحتوي معظم مكتبات السلاسل النصية المتاحة [ 58 ] للغة C على شيفرة تُنفذ عملية التقليم، أو دوال تُسهّل بشكل كبير تنفيذها بكفاءة. وقد يُطلق على هذه الدالة أيضًا اسم EatWhitespace في بعض مكتبات C غير القياسية.
في لغة C، غالباً ما يجمع المبرمجون بين دالتي ltrim و rtrim لتنفيذ عملية الحذف:
#include <ctype.h> #include <string.h>void rtrim ( char * str ) { char * s ; s = str + strlen ( str ); while ( -- s >= str ) { if ( ! isspace ( * s )) { break ; } * s = 0 ; } }void ltrim ( char * str ) { size_t n ; n = 0 ; while ( str [ n ] && isspace (( unsigned char ) str [ n ])) { n ++ ; } memmove ( str , str + n , strlen ( str ) - n + 1 ); }void trim ( char * str ) { rtrim ( str ); ltrim ( str ); }تحتوي مكتبة Boost مفتوحة المصدر للغة C++ على العديد من متغيرات التقليم، بما في ذلك متغير قياسي: [ 59 ]
#include <boost/algorithm/string/trim.hpp>trimmed = boost :: algorithm :: trim_copy ( "string" );مع دالة boost المسماة ببساطة، trimيتم تعديل تسلسل الإدخال في مكانه، ولا يتم إرجاع أي نتيجة.
مكتبة Qt مفتوحة المصدر أخرى مكتوبة بلغة C++ ، ولها عدة متغيرات تقليم، بما في ذلك متغير قياسي: [ 60 ]
#include <QString>trimmed = s . trimmed ();تتضمن نواة لينكس أيضًا دالة strip، strstrip()منذ الإصدار 2.6.18-rc1، والتي تقوم بحذف السلسلة النصية "في مكانها". ومنذ الإصدار 2.6.33-rc1، تستخدم النواة دالة strip strim()بدلاً من strstrip()دالة strip لتجنب التحذيرات الخاطئة. [ 61 ]
هاسكل
خوارزمية تقليم في لغة هاسكل :
استوردنا Data.Char ( isSpace ) و trim :: String -> String . ثم قمنا بحساب trim = f.f حيث f = reverse.dropWhile isSpaceيمكن تفسير ذلك على النحو التالي: تقوم الدالة f بحذف المسافة البيضاء السابقة، ثم تعكس ترتيب السلسلة. بعد ذلك، تُطبق الدالة f مرة أخرى على ناتجها. توقيع النوع (السطر الثاني) اختياري.
ج
خوارزمية التقليم في J هي وصف وظيفي :
trim =. #~ [: ( +./\ *. +./\. ) ' ' &~:أي: تصفية ( #~) للأحرف غير الفراغية ( ' '&~:) بين المسافات البادئة ( +./\) و ( *.) اللاحقة ( ).+./\.
جافا سكريبت
توجد دالة تقليم مدمجة في جافا سكريبت 1.8.1 (فايرفوكس 3.5 والإصدارات الأحدث)، وفي معيار ECMAScript 5. في الإصدارات السابقة، يمكن إضافتها إلى النموذج الأولي لكائن السلسلة النصية كما يلي:
String.prototype.trim = function ( ) { return this.replace ( /^\s+ / g , "" ) .replace ( / \s+$/g , " " ) ; } ;بيرل
لا تحتوي لغة بيرل 5 على دالة تقليم مدمجة. ومع ذلك، يتم تحقيق هذه الوظيفة عادةً باستخدام التعابير النمطية .
مثال:
$string =~ s/^\s+// ; # إزالة المسافات البيضاء البادئة $string =~ s/\s+$// ; # إزالة المسافات البيضاء اللاحقةأو:
$string =~ s/^\s+|\s+$//g ; # إزالة المسافات البيضاء البادئة واللاحقةتُعدّل هذه الأمثلة قيمة المتغير الأصلي $string.
يتوفر أيضًا لـ Perl برنامج StripLTSpace من String::StripCPAN .
ومع ذلك، هناك دالتان شائعتان الاستخدام لإزالة المسافات البيضاء من نهاية السلاسل النصية، chompوهما chop:
chopيزيل الحرف الأخير من سلسلة نصية ويعيده.chompيزيل هذا الأمر حرف السطر الجديد (أو الأحرف) الأخيرة من السلسلة النصية إن وجدت. (يعتمد تعريف حرف السطر الجديد على قيمة $INPUT_RECORD_SEPARATOR ).
في لغة Raku ، وهي اللغة الشقيقة القادمة للغة Perl، تحتوي السلاسل النصية على trimطريقة.
مثال:
$string = $string . trim ; # إزالة المسافات البيضاء الزائدة في بداية ونهاية السلسلة $string .= trim ; # نفس الشيءتي سي إل
يحتوي أمر Tcl على ثلاثة أوامر فرعية ذات صلة: ، و . لكل من هذه الأوامر، يمكن تحديد وسيطة إضافية: سلسلة تمثل مجموعة من الأحرف المراد إزالتها - القيمة الافتراضية هي المسافة البيضاء (مسافة، علامة جدولة، سطر جديد، إرجاع المؤشر) .stringtrimtrimrighttrimleft
مثال على حذف حروف العلة:
set string onomatopoeia set trimmed [ string trim $string aeiou ] ; # النتيجة هي nomatop set r_trimmed [ string trimright $string aeiou ] ; # النتيجة هي onomatop set l_trimmed [ string trimleft $string aeiou ] ; # النتيجة هي nomatopoeiaXSLT
تتضمن XSLT الوظيفة التي تزيل المسافات البيضاء البادئة واللاحقة، بالإضافة إلى استبدال أي تسلسل مسافات بيضاء (بما في ذلك فواصل الأسطر) بمسافة واحدة.normalize-space(string)
مثال:
<xsl:variable name= 'trimmed' > <xsl:value-of select= 'normalize-space(string)' /> </xsl:variable>يتضمن XSLT 2.0 التعبيرات النمطية، مما يوفر آلية أخرى لإجراء تقليم السلسلة.
تتمثل إحدى تقنيات XSLT الأخرى للتقليم في استخدام substring()وظيفة XPath 2.0.
مراجع
- ↑ "دروس الويب التعليمية عبر الإنترنت من W3Schools" . www.w3schools.com . تم الاطلاع عليه بتاريخ 14 أبريل 2026 .
- 1 2 3 4 5 يمكن أن يكون الفهرس سالبًا، مما يشير إلى عدد الأماكن قبل نهاية السلسلة.
- ↑ في لغة Rust،
str::charsتقوم الطريقة بالتكرار على نقاط التعليمات البرمجية وتقومstd::iter::Iterator::nthالطريقة على المكررات بإرجاع القيمة n ذات الفهرس الصفري من المكرر، أوNone. - ↑ لا يمكن أن يكون الفهرسسالبًا، استخدم *-N حيث يشير N إلى عدد المواضع قبل نهاية السلسلة.
- ↑ في لغة C++،تُرجع
operator<=>الطريقة المُحمّلة بشكل زائد على سلسلة نصيةstd::strong_orderingكائنًا (وإلاstd::weak_ordering):less،equal(نفس الشيءequivalent)، أوgreater. - ↑ تُرجع أقل أو يساوي أو أكبر
- ↑ يُرجع LT أو EQ أو GT
- ↑ تُرجع
.TRUE.أو.FALSE.. تعتمد هذه الدوال على تسلسل فرز ASCII. - 1 2 ملحق IBM.
- ↑ في لغة Rust،تُرجع
Ord::cmpالدالة على السلسلة النصيةOrdering:LessأوEqual، أوGreater. - ↑ استخدم REXX الأصلي ¬ للنفي المنطقي، ويستخدم ANSI Rexx \، وتقبل بعض التطبيقات ~ أو ^، وتختلف التطبيقات غير EBCDIC فيما إذا كان ¬ موجودًا عند نقطة الترميز AA أو AC.
- ↑ استخدمت لغة PL/I الأصلية الرمز ¬ للدلالة المنطقية "ليس"، وتتوقع بعض التطبيقات الرمز ^، وتختلف التطبيقات غير EBCDIC فيما إذا كان الرمز ¬ موجودًا عند نقطة الترميز AA أو AC.
- 123456In Rust, the operators == and != and the methods
eq,neare implemented by thePartialEqtrait, and the operators <, >, <=, >= and the methodslt,gt,le,geare implemented by thePartialOrdtrait. - ↑The operators use the compiler's default collating sequence.
- ↑modifies
string1, which must have enough space to store the result - ↑In Rust, the
+operator is implemented by theAddtrait. - ↑See the
str::containsmethod. - ↑See the
std::basic_string::containsmethod. - 12startpos is IBM extension.
- 12See the
str::findmethod. - ↑
startposis IBM extension. - ↑"scan in Fortran Wiki". Fortranwiki.org. 2009-04-30. Retrieved 2013-08-18.
- ↑"verify in Fortran Wiki". Fortranwiki.org. 2012-05-03. Retrieved 2013-08-18.
- ↑
formatstringmust be a fixed literal at compile time for it to have the correct type. - ↑See
std::format, which is imported by the Rust prelude so that it can be used under the nameformat. - ↑See the
slice::joinmethod. - ↑if n is larger than the length of the string, then in Debug mode ArrayRangeException is thrown, in Release mode, the behaviour is unspecified.
- ↑if n is larger than the length of the string, Java will throw an IndexOutOfBoundsException
- 12if n is larger than length of string, raises Invalid_argument
- 12if n is larger than length of string, throw the message "StringTake::take:"
- 123In Rust, strings are indexed in terms of byte offsets and there is a runtime panic if the index is out of bounds or if it would result in invalid UTF-8. A
&str(string reference) can be indexed by various types of ranges, includingRange(0..n),RangeFrom(n..), andRangeTo(..n) because they all implement theSliceIndextrait withstrbeing the type being indexed. Thestr::getmethod is the non-panicking way to index. It returnsNonein the cases in which indexing would panic. - ↑Ruby lacks Unicode support
- ↑See the
str::lenmethod. - ↑In Rust, the
str::charsmethod iterates over code points and thestd::iter::Iterator::countmethod on iterators consumes the iterator and returns the total number of elements in the iterator. - ↑operates on one character
- 12The
transformfunction exists in thestd::namespace. You must include the<algorithm>header file to use it. Thetolowerandtoupperfunctions are in the global namespace, obtained by the<ctype.h>header file. Thestd::tolowerandstd::touppernames are overloaded and cannot be passed tostd::transformwithout a cast to resolve a function overloading ambiguity, e.g.std::transform(string.begin(), string.end(), result.begin(), (int (*)(int))std::tolower); - ↑
std::stringonly, result is stored in stringresultwhich is at least as long asstring, and may or may not bestringitself - 12only ASCII characters as Ruby lacks Unicode support
- ↑See the
str::to_lowercasemethod. - ↑See the
str::replacemethod. - 12345The "find" string in this construct is interpreted as a regular expression. Certain characters have special meaning in regular expressions. If you want to find a string literally, you need to quote the special characters.
- ↑third parameter is non-standard
- ↑In Rust, the
str::charsmethod iterates over code points, thestd::iter::Iterator::revmethod on reversible iterators (std::iter::DoubleEndedIterator) creates a reversed iterator, and thestd::iter::Iterator::collectmethod consumes the iterator and creates a collection (which here is specified as aStringwith the turbofish syntax) from the iterator's elements. - ↑See the
str::rfindmethod. - ↑"Annotated ES5". Es5.github.com. Archived from the original on 2013-01-28. Retrieved 2013-08-18.
- ↑if n is larger than length of string, then in Debug mode ArrayRangeException is thrown, and unspecified behaviour in Release mode
- ↑See the
str::splitandstr::rsplitmethods. - 1234567
startposcan be negative, which indicates to start that number of places before the end of the string. - 12
numCharscan be negative, which indicates to end that number of places before the end of the string. - ↑
startposcan not be negative, use * - startpos to indicate to start that number of places before the end of the string. - ↑
numCharscan not be negative, use * - numChars to indicate to end that number of places before the end of the string. - 12345
endposcan be negative, which indicates to end that number of places before the end of the string. - ↑
std::stringonly, result is stored in string result which is at least as long as string, and may or may not be string itself - ↑ "أحرف كبيرة - لغة برمجة كوتلن" . كوتلن . تم الاسترجاع في 9 نوفمبر 2024 .
- ↑ في لغة Rust،
str::to_uppercaseتُعيد الطريقة كائنًا تم تخصيصه حديثًاStringمع تغيير أي أحرف صغيرة إلى أحرف كبيرة وفقًا لقواعد Unicode. - ↑ في لغة Rust،
str::trimتُرجع هذه الطريقة مرجعًا إلى الأصل&str. - ^ "تقليم – جنو باسكال priručnik" . جنو-باسكال.دي . تم الاسترجاع 2013/08/24 .
- ↑ "مقارنة مكتبات السلاسل النصية" . And.org . تم الاطلاع عليه بتاريخ 24-08-2013 .
- ↑ "الاستخدام – 1.54.0" . Boost.org. 2013-05-22 . تم الاطلاع عليه بتاريخ 2013-08-24 .
- ↑أُرشف بتاريخ 2 أغسطس 2009 في أرشيف الإنترنت (Wayback Machine) .
- ↑ dankamongmen. "sprezzos-kernel-packaging/changelog at master · dankamongmen/sprezzos-kernel-packaging · GitHub" . Github.com . تم الاطلاع عليه بتاريخ 29-05-2016 .
- السلاسل النصية (علوم الحاسوب)
- مقارنات لغات البرمجة
