JavaRush /جاوا بلاگ /Random-SD /اسٽرنگ ڪلاس
articles
سطح

اسٽرنگ ڪلاس

گروپ ۾ شايع ٿيل
  • طريقا
  • بي ترتيب واري تار ٺاهيندي
  • اسٽرنگ جو مقابلو: equals()يا ==؟
ڪلاس Stringگهڻو ڪري پروگرامرز پاران استعمال ڪيو ويندو آهي، تنهنڪري اهو تمام سٺو سکڻ گهرجي. ڪلاس اسٽرنگ - 1ياد رهي ته ڪلاس جون شيون Stringناقابل تبديل آهن. تنهن ڪري جڏهن توهان سوچيو ته توهان هڪ تار کي تبديل ڪري رهيا آهيو، توهان اصل ۾ هڪ نئين تار ٺاهي رهيا آهيو. جاوا وٽ خاص طبقا آهن StringBuffer۽ StringBuilderجيڪي هڪ تار ۾ تبديلين جي اجازت ڏين ٿا. ڪلاس String, StringBuffer, java.langStringBuilder پيڪيج ۾ بيان ڪيا ويا آهن ۽ خودڪار طور تي دستياب آهن بغير ڪنهن درآمد جي اعلان جي. سڀئي ٽي طبقا انٽرفيس کي لاڳو ڪن ٿا . هڪ تار ٺاهڻ تمام سادو آهي. مثال طور، توھان ھي ڪري سگھو ٿا: CharSequence
String aboutCat = "Кот - это звучит гордо, а если наступить на хвост, то громко";
توهان تارن جي هڪ صف ٺاهي سگهو ٿا:
String[] cats = {"Васька", "Barsik", "Murzik"};
توهان هڪ خالي ڪلاس اعتراض ٺاهي سگهو ٿا String:
String str = new String();
توھان ھڪڙي اسٽرنگ ٺاھي سگھوٿا ھڪڙي ڪردار جي صف ذريعي:
char[] chars = { 'c', 'a', 't' };
String str = new String(chars);
اتي پڻ ھڪڙو ٺاھيندڙ آھي جيڪو توھان کي اجازت ڏئي ٿو ھڪڙي ڪردار جي صف جي حد مقرر ڪرڻ جي. توھان کي بيان ڪرڻ جي ضرورت آھي رينج جي شروعات ۽ استعمال ڪرڻ لاءِ اکرن جو تعداد:
char[] chars = {'c', 'a', 't', 'a', 'm', 'a', 'r', 'a', 'n' };
String str = new String(chars, 0, 3);
توھان ھيٺ ڏنل ٺاھيندڙن کي استعمال ڪندي Stringڪلاس اعتراض مان ھڪڙو ڪلاس اعتراض ٺاھي سگھو ٿا:StringBufferStringBuilder
String(StringBuffer an object_StrBuf)
String(StringBuilder an object_StrBuild)

آپريٽر +۽ += لاءِString

جاوا ۾، جمع جي نشاني ( +) جو مطلب آهي string concatenation، ٻين لفظن ۾، تارن کي گڏ ڪرڻ.
String cat = "Кот";
String name = "Васька";
//складываем две строки и пробел между ними, чтобы слова не слиплись
String fullname = cat + " " + name; // получится Кот Васька
جيڪڏهن هڪ ايڪسپريس ۾ هڪ آپرينڊ هڪ اسٽرنگ تي مشتمل آهي، ته پوء ٻيا آپرينڊ پڻ اسٽرنگ هجڻ گهرجن. تنهن ڪري، جاوا پاڻ variables کي اسٽرنگ جي نمائندگي ڪري سگهي ٿو، جيتوڻيڪ اهي تار نه آهن.
int digit = 4;
String paws = " лапы";
String aboutcat = digit + paws; // хотя мы складываем число и строку, но все равно получим строку
За кулисами Java за нас преобразовало число 4 в строку "4"

فارميٽنگ تار

اچو ته فرض ڪريون ته اسان وٽ هڪ اسٽرنگ وسيلو آهي:
<string name="aboutcat">У кота по имени Барсик четыре лапы, один хвост. Ему 5 лет</string>
ھن اسٽرنگ کي پروگرام طور عنصر ۾ ڏيکارڻ لاءِ TextView، توھان استعمال ڪري سگھوٿا ڪوڊ:
TextView tvCatsInfo = (TextView)findViewById(R.id.textView1);
tvCatsInfo.setText(R.string.aboutcat);
تصور ڪريو ته توھان وٽ ڪيترائي ٻليون آھن. توهان ڪري سگهو ٿا، يقينا، هر ٻلي لاء توهان جي پنهنجي لائن آهي. پر لڪيرون تمام گهڻيون ساڳيون آهن، صرف نالا ۽ عمر بدلجي ٿو. توهان پنن ۽ دم جو تعداد پڻ تبديل ڪري سگهو ٿا (توهان ڇا تماڪ ڇڪيندا آهيو؟). اهڙين حالتن ۾، توهان لاڳو ڪري سگهو ٿا اسٽرنگ فارميٽ. اسان کي انهن لفظن جو تعين ڪرڻ جي ضرورت آهي ته اسين انهن کي تبديل ڪنداسين ۽ انهن کي اکرن جي هڪ خاص سيٽ سان تبديل ڪنداسين جيڪو هڪ سيڪڙو علامت سان شروع ٿئي ٿو، پوء هڪ نمبر سان وڌندي، پوء $sتارن لاء يا $dانگن لاء. تنهن ڪري اچو ته اسان جي اسٽرنگ وسيلن کي هن طرح تبديل ڪريو:
<string name="aboutcat">У кота по имени %1$s %2$s лапы, %3$s хвост. Ему %4$d лет</string>
اچو ته ڪوڊ ۾ تبديليون آڻيون:
String strBarsik = "Barsik";
String strPaws = "четыре";
String strTail = "one";
int year = 5;
String strCats = getResources().getString(R.string.aboutcat);
String strFinal = String.format(strCats, strBarsik, strPaws, strTail, year);
tvCatsInfo.setText(strFinal);
جيڪڏهن توهان وٽ هڪ ٻلي Vaska آهي ۽ هو ڇهن سالن جو آهي، پوء ٻه متغير شامل ڪريو ۽ لائن کي فارميٽ ڪريو
String strVaska = "Васька";
year = 6;
String strFinal = String.format(strCats, strVaska, strPaws, strTail, year);
tvCatsInfo.setText(strFinal);
هتي هڪ سادي فارميٽ جو مثال آهي. ان کي ياد رکو ۽ ان کي صحيح جڳهن ۾ استعمال ڪريو.

اسٽرنگ جو وسيلو

اهو وسيلن ۾ تارن کي ذخيرو ڪرڻ جي صلاح ڏني وئي آهي. پروگرامي طور تي اسٽرنگ وسيلن تائين رسائي هن طرح ڪئي وئي آهي:
String catName = getResources().getString(R.string.barsik);

وسيلن ۾ string arrays مان اسٽرنگ ڪڍو

اچو ته چئو ته توهان وٽ strings.xml فائل ۾ بيان ڪيل هڪ اسٽرنگ سر آهي cats_array. پوء توھان ھن طرح وسيلن کان قطار تائين رسائي ڪري سگھو ٿا:
Resources res = getResources();
String[] cats = res.getStringArray(R.array.cats_array);

طريقا

public char charAt (int index) هن اسٽرنگ ۾ بيان ڪيل آفسيٽ تي ڪردار واپس ڪري ٿو. ڳڻپ 0 کان شروع ٿئي ٿي. منفي ۽ غير موجود قدرن کي استعمال ڪرڻ جي ڪا ضرورت ناهي، وڌيڪ سنجيده ٿيو. گھڻن اکرن کي ڪڍڻ لاءِ استعمال ڪريو getChars().
String testString = "Котёнок";
char myChar = testString.charAt(2);
tv.setText(Character.toString(myChar)); // выводит третий символ - т
public int codePointAt(int index) ڏنل انڊيڪس تي يونيڪوڊ اکر واپس ڪري ٿو
String testString = "Котёнок";
int myChar = testString.codePointAt(3);
tv.setText(String.valueOf(myChar)); // возвращает 1105
public int codePointBefore(int index) يونيڪوڊ ڪردار ڏي ٿو جيڪو ڏنل انڊيڪس کان اڳ ۾ آهي
String testString = "Котёнок";
int myChar = testString.codePointBefore(4);
tv.setText(String.valueOf(myChar)); // возвращает 1105
public int codePointCount(int start, int end)startپوزيشن ۽ وچ ۾ يونيڪوڊ اکرن جو تعداد حساب ڪري ٿوend
String testString = "Котёнок";
int myChar = testString.codePointCount(0, 3);
tv.setText(String.valueOf(myChar)); // возвращает 3
public int compareTo(String string) يونيڪوڊ ڪردار جي قدرن کي استعمال ڪندي بيان ڪيل اسٽرنگ جو مقابلو ڪري ٿو ۽ حساب ڪري ٿو ته ڪهڙي اسٽرنگ اڳيان کان گهٽ، برابر يا وڏي آهي. ترتيب ڏيڻ لاء استعمال ڪري سگهجي ٿو. ڪيس غور هيٺ آهي. جيڪڏهن اسٽرنگ ملن ٿا، پوء 0 واپس ڪيو ويندو، جيڪڏهن صفر کان گهٽ، پوء ڪالنگ اسٽرنگ اسٽرنگ کان گهٽ آهي string، جيڪڏهن صفر کان وڌيڪ، پوء ڪالنگ اسٽرنگ اسٽرنگ کان وڌيڪ آهي string. مٿين صورتن جا لفظ ننڍي صورت جي لفظن جي مٿان رکيا ويا آهن.
String testString = "Котёнок";

if (testString.compareTo("котёнок") == 0) {
    tvInfo.setText("Строки равны");
} else {
    tvInfo.setText("Строки не равны. Возвращено"
            + testString.compareTo("котёнок")); // возвращает -32
}
اچو ته بلبل ترتيب استعمال ڪندي تارن جي صف کي ترتيب ڏيو.
String[] poem = { "Мы", "везём", "с", "собой", "кота" };

for (int j = 0; j < poem.length; j++) {
	for (int i = j + 1; i < poem.length; i++) {
		if (poem[i].compareTo(poem[j]) < 0) {
			String temp = poem[j];
			poem[j] = poem[i];
			poem[i] = temp;
		}
	}
	System.out.println(poem[j]);
}
نتيجي طور، اسان حاصل ڪريون ٿا:
Мы
везём
кота
с
собой
جئين توهان ڏسي سگهو ٿا، شرطن جي جڳهن کي تبديل ڪرڻ سان ٻڪرين جي ترتيب واري رقم کي تبديل نٿو ڪري. public int compareToIgnoreCase (String string) يونيڪوڊ ڪردار جي قدرن کي استعمال ڪندي بيان ڪيل اسٽرنگ جو مقابلو ڪري ٿو، غير حساس صورت ۾.
String testString = "Котёнок";

if (testString.compareToIgnoreCase("котёнок") == 0) {
    tv.setText("Строки равны"); // слова одинаковы, если не учитывать регистр
} else {
    tv.setText("Строки не равны. Возвращено"
            + testString.compareTo("котёнок"));
}
public String concat (String string) ھڪڙي اسٽرنگ کي مخصوص اسٽرنگ سان گڏ ڪري ٿو. ھڪڙو نئون اسٽرنگ موٽايو ويو آھي جنھن ۾ ٻن تارن جي ڪنٽينشن شامل آھي. نوٽ ڪريو ته طريقو نالو پاڻ ۾ هڪ ٻلي تي مشتمل آهي!
String testString = "Сук";
String newString = testString.concat("кот");
tv.setText(newString);
طريقو ساڳيو ڪم سرانجام ڏئي ٿو جيئن آپريٽر +۽ لکي سگهجي ٿو Сук + кот. پر هڪ حقيقي ٻلي ماڻهو استعمال ڪندو "بلي" طريقو. public boolean contains (CharSequence cs) اهو طئي ڪري ٿو ته ڇا هڪ اسٽرنگ ۾ اکرن جو سلسلو شامل آهيCharSequence
String testString = "котёнок";

if(testString.contains("кот")){
    infoTextView.setText("В слове котёнок содержится слово кот!");
}
public static String copyValueOf (char[] data, int start, int length) ھڪڙي نئين اسٽرنگ ٺاھيو آھي جنھن ۾ مخصوص اکر شامل آھن صف کان Dataشروع ٿيندڙ پوزيشن start(صفر تي ٻڌل نمبرنگ) ڊگھائي ڊگھائي جي . public static String copyValueOf(char[] data) هڪ نئين اسٽرنگ ٺاهي ٿو جنهن ۾ مخصوص صف مان اکر شامل آهن. قطار جي ٺهڻ کان پوءِ صف کي تبديل ڪرڻ سان ٺهيل قطار تبديل نه ٿيندي. public boolean endsWith(String suffix) چيڪ ڪري ٿو ته ڇا تار ختم ٿئي ٿي suffix.
String str1 = "Суккот";

if(str1.endsWith("кот"))
    infoTextView.setText("Слово заканчивается на котике");
else
    infoTextView.setText("Плохое слово. Нет смысла его использовать");
public boolean equals (Object string) بيان ڪيل اعتراض ۽ هڪ اسٽرنگ جو مقابلو ڪري ٿو ۽ صحيح موٽائي ٿو جيڪڏهن مقابلي واري تار برابر آهن، يعني. ساڳئي اکرن تي مشتمل آهي ۽ ساڳئي صورت ۾ حساس ترتيب ۾.
String str1 = "Кот";
String str2 = "Кошка";

if(str1.equals(str2))
    infoTextView.setText("Строки совпадают");
else
    infoTextView.setText("Строки не совпадают");
طريقو اهو آهي ته آپريٽر سان پريشان نه ڪيو وڃي ==، جيڪو ٻن اعتراضن جي حوالن جو مقابلو ڪري ٿو ۽ اهو طئي ڪري ٿو ته ڇا اهي ساڳئي مثال ڏانهن اشارو ڪن ٿا. String Comparison ڏسو: equals()or ==؟ public boolean equalsIgnoreCase(String string) بيان ڪيل اسٽرنگ کي ماخذ اسٽرنگ سان غير حساس انداز ۾ موازنہ ڪري ٿو ۽ صحيح موٽائي ٿو جيڪڏهن اهي برابر آهن. AZ جي حد کي az جي حد جي برابر سمجهيو ويندو آهي.
String str1 = "Кот";
String str2 = "кот";

if(str1.equalsIgnoreCase(str2))
    infoTextView.setText("Строки совпадают");
else
    infoTextView.setText("Строки не совпадают");
public static String format(Locale locale, String format, Object... args)
مهيا ڪيل فارميٽ استعمال ڪندي فارميٽ ٿيل اسٽرنگ ڏي ٿو ۽ ڏنل دائري ۾ لوڪل ٿيل دليل. مثال طور تاريخ يا وقت
// выводим число типа float с двумя знаками после запятой
String.format("%.2f", floatValue);
اسان ٻن لفظن کي ڳنڍيندا آهيون جيڪي نئين لڪير تي ظاهر ٿيندا آهن. انهي صورت ۾، ٻيو لفظ مٿين صورت ۾ ڏيکاريل آهي.
String str1 = "Кот";
String str2 = "васька";
String strResult = String.format("%s\n%S", str1, str2);
// выводим результат в TextView
infoTextView.setText(strResult);
نمبر کي آڪٽل سسٽم ۾ تبديل ڪريو.
String str1 = "8";
int inInt = Integer.parseInt(str1); // конвертируем строку в число
String strResult = String.format("(Восьмеричное meaning): %o\n", inInt);

infoTextView.setText(strResult);
قياس سان، اسان هيڪساڊيڪل سسٽم ۾ ڊسپلي ڪندا آهيون
String str1 = "255";
int inInt = Integer.parseInt(str1);
String strResult = String.format("(Шестнадцатеричное meaning): %x\n", inInt);
// число 255 будет выведено How ff
infoTextView.setText(strResult);
وڏي اکر استعمال لاء %X، پوء ffاهو ٿيندو FF. decimal سسٽم لاء استعمال %d. تاريخ به مختلف طريقن سان ڏيکاري سگهجي ٿو.
Date now = new Date();
Locale locale = Locale.getDefault();
infoTextView.setText(
		String.format(locale, "%tD\n", now) + // (MM/DD/YY)
		String.format(locale, "%tF\n", now) + // (YYYY-MM-DD)
		String.format(locale, "%tr\n", now) + // Full 12-hour time
		String.format(locale, "%tz\n", now) + // Time zone GMT offset
		String.format(locale, "%tZ\n", now)); // Localized time zone bbreviation
public byte[] getBytes(String charsetName) مهيا ڪيل فارميٽ استعمال ڪندي فارميٽ ٿيل اسٽرنگ واپس ڪري ٿو. public void getBytes(int start, int end, byte[] data, int index)۽ ٻيون اوورلوڊس طريقو ڪردارن کي بائيٽ ايري ۾ محفوظ ڪري ٿو، جو متبادل getChars(). اڪثر استعمال ڪيو ويندو آهي جڏهن مختلف ذريعن کان تار برآمد ڪندا آهن جيڪي ٻيا يونيڪوڊ اکر استعمال ڪندا آهن. مثال طور، Java by default ڪم ڪري ٿو 16-bit يونيڪوڊ اکرن سان، ۽ انٽرنيٽ تي، اسٽرنگ اڪثر 8-bit يونيڪوڊ، ASCII وغيره استعمال ڪندا آهن. public void getChars(int start, int end, char[] buffer, int index) هڪ اسٽرنگ مان گھڻن اکرن کي ڪڍڻ لاءِ طريقو. توھان کي بيان ڪرڻ جي ضرورت آھي سب اسٽرنگ جي شروعات جي انڊيڪس ( start)، انڊيڪس جي انڊيڪس ھيٺ ڏنل اسٽرنگ جي پڇاڙيءَ کان پوءِ ڪڍيو وڃي ( end ). صف جيڪا چونڊيل اکرن کي حاصل ڪري ٿي بفر پيٽرولر ۾ آهي . صف ۾ انڊيڪس، جنهن کان شروع ٿئي ٿو سب اسٽرنگ لکيو ويندو، انڊيڪس پيراميٽر ۾ گذريو ويو آهي . پڪ ڪريو ته صف ايتري وڏي آهي ته مخصوص سبسٽرنگ ۾ سڀني اکرن تي مشتمل هجي.
String unusualCat = "Котёнок по имени Гав";
int start = 5;
int end = 12;
char[] buf = new char[end - start];
unusualCat.getChars(start, end, buf, 0);
infoTextView.setText(new String(buf));
public int hashCode() هڪ انٽيجر واپس ڪري ٿو جيڪو هن اعتراض لاء هيش ڪوڊ آهي. public int indexOf(int c) بيان ڪيل انڊيڪس سان پهرين سامهون آيل پوزيشن جو تعداد واپس ڪري ٿو c.
String testString = "котёнок";
// символ ё встречается в четвёртой позиции (index = 3)
infoTextView.setText(String.valueOf(testString.indexOf("ё")));
public int indexOf (int c, int start) انڊيڪس کي ڏسي ٿو، پوزيشن کان شروع ڪنديstart
String testString = "котёнок";
// вернёт -1, так How после 5 символа буквы ё нет
infoTextView.setText(String.valueOf(testString.indexOf("ё", 4)));
public int indexOf (String string) اکرن جي هڪ تار جي ڳولاsubString
String testString = "У окошка";
infoTextView.setText(String.valueOf(testString.indexOf("кошка")));
public int indexOf (String subString, int start)subStringپوزيشن کان شروع ٿيندڙ اکرن جي اسٽرنگ جي ڳولاstart
String testString = "У окошка";
infoTextView.setText(String.valueOf(testString.indexOf("кошка", 2)));
public String intern () "Hashes" هڪ اسٽرنگ public boolean isEmpty () چيڪ ڪري ٿو ته تار خالي آهي
if(catname.isEmpty()) {
    // здесь ваш code
}
اهو طريقو API 9 (Android 2.1) ۾ ظاهر ٿيو. پراڻن ڊوائيسز لاء، استعمال ڪريو String.length() == 0 public int lastIndexOf (String string) и другие перегруженные версии واپسي جي آخري پوزيشن جو تعداد مخصوص انڊيڪس تي. مثال طور، توھان حاصل ڪري سگھوٿا فائل جو نالو بغير واڌ جي ھن طرح:
filename.toString().substring(0, filename.getString().lastIndexOf("."));
هن مثال ۾، اسان آخري نقطي جي پوزيشن حاصل ڪندا آهيون ۽ ان کان اڳ سبسٽنگ حاصل ڪندا آهيون. public int length() تار جي ڊگھائي ڏي ٿو
String testString = "котёнок";
infoTextView.setText(String.valueOf(testString.length())); // возвращает 7 (семь символов)
public boolean matches(String regularExpression) چيڪ ڪري ٿو ته ڇا هڪ تار باقاعده اظهار سان ملندو آهي.
public int offsetByCodePoints (int index, int codePointOffset)
codePointOffsetپيراميٽر پاران بيان ڪيل شروعاتي پوزيشن کان پوءِ فاصلي تي موجود پوزيشن واپس ڪري ٿو . index public boolean regionMatches (int thisStart, String string, int start, int length) طريقو سٽرنگ جي مخصوص حصي کي اسٽرنگ جي ٻئي حصي سان ڀيٽي ٿو. توھان کي ڪلاس جي ڪالنگ اعتراض جي قطار جي حد جي شروعات جي انڊيڪس کي بيان ڪرڻ گھرجي String. مقابلي ڪرڻ لاءِ اسٽرنگ پيراميٽر ۾ گذريو ويو آهي string. ڪردار جو انڊيڪس شروع ٿئي ٿو جتان مقابلو ڪرڻ جي ضرورت آهي پيراميٽر ۾ پاس ڪيو ويو آهي start، ۽ تقابل ٿيڻ واري ذيلي اسٽرينگ جي ڊيگهه پيراميٽر ۾ گذري وئي آهي length. public boolean regionMatches (boolean ignoreCase, int thisStart, String string, int start, int length) اوورلوڊ ٿيل نسخو. طريقو هڪ تار جي مخصوص حصي کي تار جي ٻئي حصي سان ڀيٽ ڪري ٿو، ڪيس کي نظر انداز ڪري ٿو. public String replace(CharSequence target, CharSequence replacement) и другие перегруженные версии ڪردارن جي ھڪڙي ڪردار يا ترتيب targetکي تبديل ڪري ٿوreplacement
String testString = "whale";
// меняем и на о
infoTextView.setText(testString.replace("And", "о")); // возвращается кот
public String replaceAll (String regularExpression, String replacement) public String replaceFirst (String regularExpression, String replacement) ريگيولر ايڪسپريس استعمال ڪندي پهرين اکرن کي هٽائي ٿو. مثال طور، جيڪڏهن توهان کي 001، 007، 000024 نمبرن جي شروعات ۾ صفر کي هٽائڻ جي ضرورت آهي، ته پوء توهان هي ڪال استعمال ڪري سگهو ٿا.
String s = "001234-cat";
String s = s.replaceFirst ("^0*", ""); // останется 1234-cat
public String[] split (String regularExpression) и другие перегруженные версии ورهائي ٿو هڪ تار کي لفظن جي صف ۾. مثال طور، هڪ تار آهي Vaska Ryzhik Murzik Barsik ۽ اسان کي ٻلي جي نالن جي هڪ صف حاصل ڪرڻ چاهيو ٿا:
String catnames = "Васька Рыжик Мурзик Барсик";
String aCats[] = catnames.split(" ");  // по пробелу
اسان حاصل ڪريون ٿا:
aCats[0] = Васька
aCats[1] = Рыжик
aCats[2] = Мурзик
aCats[3] = Барсик
public boolean startsWith(String prefix) چيڪ ڪري ٿو ته ڇا تار شروع ٿئي ٿو اکرن سان prefixاسٽرنگ جي شروعات کان
String str1 = "котлета";

if(str1.startsWith("кот"))
    infoTextView.setText("Слово содержит кота");
else
    infoTextView.setText("Плохое слово. Нет смысла его использовать");
public boolean startsWith(String prefix, int start) چيڪ ڪري ٿو ته ڇا ڏنل اسٽرنگ اکرن سان شروع ٿئي ٿو prefixمخصوص پوزيشن تي.
String str1 = "Суккот";

if(str1.startsWith("кот", 3))
    infoTextView.setText("Слово содержит кота");
else
    infoTextView.setText("Плохое слово. Нет смысла его использовать");
public CharSequence subSequence (int start, int end) طريقي سان ملندڙ جلندڙ substring()، پر لاء استعمال ڪري سگهجي ٿو CharSequence. public String substring(int start)۽ ٻيون اوورلوڊس هڪ نئين ترتيب/ اسٽرنگ ٺاهي ٿو اکرن سان گڏ ڏنل اسٽرنگ کان پوزيشن کان شروع ٿيندڙ startلڪير جي آخر تائين/ ختم ٿيڻ واري ڪردار سان پوزيشن تي end. نئين لڪير ۾ اکرن کان startآخر تائين - 1 تائين اکرن تي مشتمل آھي، تنھنڪري اسان ھڪڙو وڌيڪ ڪردار وٺون ٿا.
String testString = "скотина";

infoTextView.setText(testString.substring(1, 4)); // возвращается кот
public char[] toCharArray() هن اسٽرنگ ۾ ڪردارن کي هڪ ڪردار جي صف ۾ نقل ڪري ٿو. ساڳيو نتيجو حاصل ڪري سگهجي ٿو جي ذريعي getChars(). دستاويز هن طريقي کي استعمال ڪرڻ جي سفارش نه ڪندو آهي، تجويز ڪيل charAt().
String unusualCat = "Котёнок по имени Гав";

char[] yomoe = unusualCat.toCharArray();
infoTextView.setText(String.valueOf(yomoe[3]));
public String toLowerCase() и другие перегруженные версии اسٽرنگ کي لوئر ڪيز ۾ تبديل ڪري ٿو. ڊفالٽ لوڪل تبديلي کي ڪنٽرول ڪري ٿو. اسٽرنگ ٻلي = "ٻلي"؛ اسٽرنگ لوئر = cat.toLowerCase()؛ infoTextView.setText(lower); public String toString () هڪ تار ڏي ٿو. خود تار لاءِ، جيڪو پاڻ اڳ ۾ ئي هڪ تار آهي، تار کي واپس ڪرڻ بي معنيٰ آهي (او، مون ان کي ڪيئن موڙيو آهي). پر هي طريقو اصل ۾ ٻين طبقن لاء تمام مفيد آهي. public String toUpperCase() هڪ تار کي اپر ڪيس ۾ تبديل ڪري ٿو. ڊفالٽ لوڪل تبديلي کي ڪنٽرول ڪري ٿو.
String cat = "Кот";
String upper = cat.toUpperCase();
infoTextView.setText(upper);
public String trim() اسٽرنگ جي شروعات ۽ آخر ۾ خالن کي هٽائي ٿو.
String str = "   Hello Kitty  ".trim();
infoTextView.setText(str);
public static String valueOf(long value)۽ ٻيا اوور لوڊ مواد (نمبر، شيون، اکر، ڪردار جي صفن) کي اسٽرنگ ۾ تبديل ڪري ٿو.
int catAge = 7; // это число

infoTextView.setText(String.valueOf(catAge)); // преобразовано в строку

بي ترتيب واري تار ٺاهيندي

اچو ته چئو ته اسان کي ڏنل اکرن جي بي ترتيب واري تار جي ضرورت آهي.
private static final String mCHAR = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
private static final int STR_LENGTH = 9; // длина генерируемой строки
Random random = new Random();

public void onClick(View view) {
    TextView infoTextView = (TextView) findViewById(R.id.textViewInfo);
    infoTextView.setText(createRandomString());
}

public String createRandomString() {
    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < STR_LENGTH; i++) {
        int number = random.nextInt(mCHAR.length());
        char ch = mCHAR.charAt(number);
        builder.append(ch);
    }
    return builder.toString();
}

اسٽرنگ جو مقابلو: equals()يا ==؟

اچو ته هڪ مثال ڏسو.
String str1 = "Murzik";
String str2 = new String(str1);
boolean isCat = str1 == str2;

infoTextView.setText(str1 + " == " + str2 + " -> " + isCat);
جيتوڻيڪ ٻه متغير ساڳيا لفظ تي مشتمل آهن، اسان ٻن مختلف شين سان ڊيل ڪري رهيا آهيون ۽ آپريٽر غلط== موٽندو . هڪ دفعي، جڏهن وڻ وڏا هئا، مون کي مختلف ذريعن مان ٻن تارن جو مقابلو ڪرڻو پيو. جيتوڻيڪ تار بلڪل ساڳيا نظر اچن ٿا، آپريٽر استعمال ڪندي مقابلو غلط موٽيو ۽ مون لاء سڀني ڪارڊ کي پريشان ڪيو. ۽ صرف پوء مون کي معلوم ڪيو ته مون کي استعمال ڪرڻ جي ضرورت آهي . جاوا ۾ هڪ اسٽرنگ هڪ الڳ شئي آهي جيڪا شايد ٻئي شئي وانگر نه هجي، جيتوڻيڪ اسٽرنگ جو آئوٽ اسڪرين تي ساڳيو نظر اچي سگهي ٿو. اهو صرف اهو آهي ته جاوا، منطقي آپريٽر جي صورت ۾ (انهي سان گڏوگڏ )، شين جي حوالن جي مقابلي ۾ (جڏهن primitives سان ڪم ڪرڻ ۾ ڪو مسئلو ناهي): ==equals()==!=
String s1 = "hello";
String s2 = "hello";
String s3 = s1;
String s4 = "h" + "e" + "l" + "l" + "o";
String s5 = new String("hello");
String s6 = new String(new char[]{'h', 'e', 'l', 'l', 'o'});

infoTextView.setText(s1 + " == " + s2 + ": " + (s1 == s2));
// попробуйте и другие варианты
// infoTextView.setText(s1 + " equals " + s2 + ": " + (s1.equals(s2)));
// infoTextView.setText(s1 + " == " + s3 + ": " + (s1 == s3));
// infoTextView.setText(s1 + " equals " + s3 + ": " + (s1.equals(s3)));
// infoTextView.setText(s1 + " == " + s4 + ": " + (s1 == s4));
// infoTextView.setText(s1 + " equals " + s4 + ": " + (s1.equals(s4)));
// infoTextView.setText(s1 + " == " + s5 + ": " + (s1 == s5)); // false
// infoTextView.setText(s1 + " equals " + s5 + ": " + (s1.equals(s5)));
// infoTextView.setText(s1 + " == " + s6 + ": " + (s1 == s6)); // false
// infoTextView.setText(s1 + " equals " + s6 + ": " + (s1.equals(s6)));
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION