English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
مثال أدناه يقوم بتعيين قيمة سلسلة نصية إلى متغير ثابت:
object Test { val greeting: String = "Hello, World!" def main(args: Array[String]) { println( greeting ) } }
مثال أعلاه يعرف المتغير greeting كمتغير ثابت، وهو قيمة نصية، ونوعه String (java.lang.String).
في Scala، نوع السلسلة هو Java String، ولم يكن لديه فئة String.
في Scala، String هو جسم غير قابل للتغيير، لذا لا يمكن تعديل هذا الجسم. مما يعني أنك إذا قمت بتعديل السلسلة، ستنتج سلسلة نصية جديدة.
لكن الأجسام الأخرى مثل الأنظمة المتغيرة. سنقدم لكم لاحقًا طرق java.lang.String الشائعة.
مثال على إنشاء سلسلة نصية كالتالي:
var greeting = "Hello World!"; أو var greeting: String = "Hello World!";
ليس من الضروري تحديد نوع الكلمة كـ String، لأن معالج Scala سيقوم بتقدير نوع الكلمة كـ String تلقائيًا.
بالطبع، يمكنك أيضًا تعريف الكلمة مباشرة كنوع String، مثل المثال التالي:
object Test { val greeting: String = "Hello, World!" def main(args: Array[String]) { println( greeting ) } }
عند تنفيذ الكود أعلاه، النتيجة ستكون:
$ scalac Test.scala $ scala Test Hello, world!
نحن ذكرنا من قبل أن كائنات String غير قابلة للتغيير، إذا كنت بحاجة إلى إنشاء كلمة قابلة للتغيير، يمكنك استخدام فئة StringBuilder، مثل المثال التالي:
object Test { def main(args: Array[String]) { val buf = new StringBuilder; buf += 'a' buf ++= "bcdef" println( "buf is : " + buf.toString ); } }
عند تنفيذ الكود أعلاه، النتيجة ستكون:
$ scalac Test.scala $ scala Test buf is : abcdef
يمكننا استخدام طريقة length() للحصول على طول الكلمة:
object Test { def main(args: Array[String]) { var palindrome = "ar.oldtoolbag.com"; var len = palindrome.length(); println( "طول الكلمة هو: " + len ); } }
عند تنفيذ الكود أعلاه، النتيجة ستكون:
$ scalac Test.scala $ scala Test طول الكلمة هو: 14
استخدام طريقة concat() في فئة String لربط كلمتين:
string1.concat(string2);
مثال على عرض:
scala> "基础教程网官网: ".concat("ar.oldtoolbag.com"); res0: String = 基础教程网官网: ar.oldtoolbag.com
يمكنك أيضًا استخدام علامة الجمع (+) للتواصل:
scala> "基础教程网官网: " + " ar.oldtoolbag.com" res1: String = 基础教程网官网: ar.oldtoolbag.com
ناخذ مثالاً كاملاً:
object Test { def main(args: Array[String]) { var str1 = "基础教程网官网:"; var str2 = "ar.oldtoolbag.com"; var str3 = "基础教程网的 Slogan 为:"; var str4 = "学好基础,才能走的更远!"; println( str1 + str2 ); println( str3.concat(str4) ); } }
عند تنفيذ الكود أعلاه، النتيجة ستكون:
$ scalac Test.scala $ scala Test موقع الصفحة التعليمية الأساسية: ar.oldtoolbag.com الشعار لـ الصفحة التعليمية الأساسية هو: تعلم الأساسيات، حتى تتمكن من الذهاب أبعد!
في String يمكنك استخدام printf() لتنسيق النص وعرضه، يمكن لـ String format() أن تعود String Object وليس PrintStream Object. في المثال أدناه يتم عرض استخدام printf()
object Test { def main(args: Array[String]) { var floatVar = 12.456 var intVar = 2000 var stringVar = "الصفحة التعليمية الأساسية!" var fs = printf("متغير الفلكي هو " + "%f, متغير صحيح هو %d, النص هو " + " %s", floatVar, intVar, stringVar) println(fs) } }
عند تنفيذ الكود أعلاه، النتيجة ستكون:
$ scalac Test.scala $ scala Test مثال على المتغيرات: المتغير الفلكي هو 12.456000، المتغير الصحيح هو 2000، النص هو الصفحة التعليمية الأساسية!()
الجدول أدناه يعرض الطرق الشائعة في java.lang.String، يمكنك استخدامها في Scala:
الترتيب | الطريقة والوصف |
---|---|
1 | char charAt(int index) إرجاع الحرف المحدد في الموضع المحدد |
2 | int compareTo(Object o) مقارنة النص مع الكائن |
3 | int compareTo(String anotherString) مقارنة النصين حسب الترتيب اللغوي |
4 | int compareToIgnoreCase(String str) مقارنة النصين حسب الترتيب اللغوي بدون النظر في الحجم |
5 | String concat(String str) إضافة النص المحدد إلى نهاية هذا النص |
6 | boolean contentEquals(StringBuffer sb) التعرف على هذا النص مع StringBuffer المحدد |
7 | static String copyValueOf(char[] data) يعود إلى النص الذي يمثل سلسلة الأحرف المحددة في هذا المجموعة |
8 | static String copyValueOf(char[] data, int offset, int count) يعود إلى النص الذي يمثل سلسلة الأحرف المحددة في هذا المجموعة |
9 | boolean endsWith(String suffix) يختبر ما إذا كان هذا النص ينتهي بسلسلة الأحرف المحددة |
10 | boolean equals(Object anObject) يقارن هذا النص مع الكائن المحدد |
11 | boolean equalsIgnoreCase(String anotherString) يقارن هذا النص مع النص الآخر دون النظر في الحجم |
12 | byte getBytes() يحول هذا النص إلى سلسلة من الأحرف الثنائية باستخدام مجموعة الحروف الافتراضية، ويخزن النتيجة في مجموعة جديدة من الأحرف الثنائية |
13 | byte[] getBytes(String charsetName يحول هذا النص إلى سلسلة من الأحرف الثنائية باستخدام مجموعة الحروف المحددة، ويخزن النتيجة في مجموعة جديدة من الأحرف الثنائية |
14 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) يكرر الحرف من هذا النص إلى مجموعة الحروف الهدف |
15 | int hashCode() يعود إلى هشاشة هذا النص |
16 | int indexOf(int ch) يعود إلى أرقام الأعمدة التي يظهر فيها الرقم المحدد في النص |
17 | int indexOf(int ch, int fromIndex) يعود إلى أرقام الأعمدة التي يظهر فيها الرقم المحدد في النص، حيث يبدأ البحث من الرقم المحدد |
18 | int indexOf(String str) يعود إلى أرقام الأعمدة التي يظهر فيها النص الفرعي المحدد في النص |
19 | int indexOf(String str, int fromIndex) يعود إلى أرقام الأعمدة التي يظهر فيها النص الفرعي المحدد في النص، حيث يبدأ البحث من الرقم المحدد |
20 | String intern() يعود إلى الشكل النموذجي للمثلث |
21 | int lastIndexOf(int ch) يعود إلى أرقام الأعمدة التي يظهر فيها الرقم المحدد في النص |
22 | int lastIndexOf(int ch, int fromIndex) يعود إلى أرقام الأعمدة التي يظهر فيها الرقم المحدد في النص، حيث يبدأ البحث العكسي من الرقم المحدد |
23 | int lastIndexOf(String str) إرجاع موقع آخر ظهور للنص الفرعي المحدد في هذا النص، من اليمين |
24 | int lastIndexOf(String str, int fromIndex) إرجاع موقع آخر ظهور للنص الفرعي المحدد في هذا النص، من البداية المحددة للبحث |
25 | int length() إرجاع طول هذا النص |
26 | boolean matches(String regex) إعلام ما إذا كانت هذا النص تطابق النمط النصي المحدد |
27 | boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) اختبار ما إذا كانت منطقة النصين متطابقة |
28 | boolean regionMatches(int toffset, String other, int ooffset, int len) اختبار ما إذا كانت منطقة النصين متطابقة |
29 | String replace(char oldChar, char newChar) إرجاع نص جديد، وهو ناتج عن استبدال جميع التطابقات لـ oldChar في هذا النص بالنص الجديد newChar |
30 | String replaceAll(String regex, String replacement استبدال جميع التطابقات للنص مع النمط النصي المحدد باستخدام replacement المحدد |
31 | String replaceFirst(String regex, String replacement) استبدال أول تطابق للنص مع النمط النصي المحدد باستخدام replacement المحدد |
32 | String[] split(String regex) قسم هذا النص بناءً على التطابق مع النمط النصي المحدد |
33 | String[] split(String regex, int limit) قسم هذا النص بناءً على النمط النصي المحدد |
34 | boolean startsWith(String prefix) اختبار ما إذا كانت هذا النص تبدأ بالحرف المحدد مسبقًا |
35 | boolean startsWith(String prefix, int toffset) اختبار ما إذا كانت هذا النص من البداية المحددة للسلسلة تبدأ بالحرف المحدد مسبقًا |
36 | CharSequence subSequence(int beginIndex, int endIndex) إرجاع سلسلة جديدة من الأحرف، وهي سلسلة فرعية من هذه السلسلة |
37 | String substring(int beginIndex) إرجاع نص جديد هو فقاعة من هذا النص |
38 | String substring(int beginIndex, int endIndex) إرجاع نص جديد هو فقاعة من هذا النص |
39 | char[] toCharArray() تحويل هذا النص إلى مجموعة جديدة من الأحرف |
40 | String toLowerCase() تحويل جميع الأحرف في هذا النص إلى حروف صغيرة باستخدام بيئة اللغة الافتراضية |
41 | String toLowerCase(Locale locale) تحويل جميع الأحرف في هذا النص إلى حروف صغيرة باستخدام قواعد اللغة المحددة |
42 | String toString() إرجاع هذا الجسم نفسه (إنه بالفعل نص!) |
43 | String toUpperCase() تحويل جميع الأحرف في هذا النص إلى حروف كبيرة باستخدام بيئة اللغة الافتراضية |
44 | String toUpperCase(Locale locale) تحويل جميع الأحرف في هذا النص إلى حروف كبيرة باستخدام قواعد اللغة المحددة |
45 | String trim() حذف الحروفitespace من بداية ونهاية النص المحدد |
46 | static String valueOf(primitive data type x) العودة إلى نوع المعلمة المحدد كتمثيل نصي |