Java-da String sinfi Java-da sətirlərlə işləmək üçün nəzərdə tutulmuşdur. Java proqramında müəyyən edilmiş bütün sətir literalları (məsələn, "abc") String sinifinin nümunələridir. Onun əsas xüsusiyyətlərinə nəzər salaq:
- Sinif
Serializable
və interfeyslərini həyata keçirirCharSequence
. Paketə daxil olduğu üçünjava.lang
idxalına ehtiyac yoxdur. - Java-da String sinfi son sinifdir və uşaq sahibi ola bilməz.
- String sinfi dəyişməz sinifdir, yəni onun obyektləri yaradıldıqdan sonra dəyişdirilə bilməz. String sinifinin obyekti ilə nəticələnəcək String obyekti üzərində hər hansı əməliyyatlar yeni obyektin yaradılması ilə nəticələnəcək.
- Dəyişməzliyinə görə String sinif obyektləri iplik təhlükəsizdir və çox yivli mühitdə istifadə oluna bilər.
toString
Java-dakı hər bir obyekt bütün Java siniflərinin sinifdən miras aldığı metod vasitəsilə sətirə çevrilə bilərObject
.
Java String ilə işləmək
Bu Java-da ən çox istifadə olunan siniflərdən biridir. O, sətirdəki müəyyən simvolların təhlili, sətirlərin müqayisəsi və axtarışı, alt sətirlərin çıxarılması, bütün simvolların kiçik və böyük hərflərə çevrildiyi sətir surətinin yaradılması və digər üsullara malikdir. String sinfinin bütün üsullarının siyahısını rəsmi sənədlərdə tapa bilərsiniz . Java həmçinin birləşdirmə (sətirləri birləşdirən), primitivləri sətirə və əksinə çevirmək üçün sadə mexanizm tətbiq edir. Java-da String sinfi ilə işləməyin bəzi nümunələrinə baxaq.Sətirlərin yaradılması
String sinifinin nümunəsini yaratmağın ən asan yolu ona sətir hərfi dəyərini təyin etməkdir:String s = "I love movies";
Bununla belə, String sinfində sizə imkan verən bir çox konstruktor var:
- boş sətirdən ibarət obyekt yaradın
- simli dəyişənin surətini yaradın
- simvol massivi əsasında sətir yaradın
- bayt massivi əsasında sətir yaradın (kodlaşdırmaları nəzərə alaraq)
- və s.
Simli əlavə
Java-da iki sətir əlavə etmək+
. Java sizə həm dəyişənləri, həm də sətir literallarını bir-birinə əlavə etməyə imkan verir:
public static void main(String[] args) {
String day = "Day";
String and = "And";
String night = "Night";
String dayAndNight = day + " " + and + " " + night;
}
String sinifinin obyektlərini digər siniflərin obyektlərinə əlavə etməklə, biz sonuncunu sətir formasına endiririk. Başqa siniflərin obyektlərinin sətir təsvirinə çevrilməsi toString
obyektdə gizli metod çağırışı vasitəsilə həyata keçirilir. Bunu aşağıdakı nümunə ilə nümayiş etdirək:
public class StringExamples {
public static void main(String[] args) {
Human max = new Human("Max");
String out = "java object: " + max;
System.out.println(out);
// Output: Java object: Person named Max
}
static class Human {
private String name;
public Human(String name) {
this.name = name;
}
@Override
public String toString() {
return "The Man with the Name" + name;
}
}
}
String müqayisəsi
Sətirləri müqayisə etmək üçün metoddan istifadə edə bilərsinizequals()
:
public static void main(String[] args) {
String x = "Test String";
System.out.println("Test String".equals(x)); // true
}
Sətirləri müqayisə edərkən vəziyyət bizim üçün vacib olmadıqda, metoddan istifadə etməliyik equalsIgnoreCase()
:
public static void main(String[] args) {
String x = "Test String";
System.out.println("test string".equalsIgnoreCase(x)); // true
}
Obyektin/primitivin sətirə çevrilməsi
İstənilən Java sinifinin nümunəsini və ya hər hansı primitiv məlumat növünü sətir təsvirinə çevirmək üçün aşağıdakı metoddan istifadə edə bilərsinizString.valueOf()
:
public class StringExamples {
public static void main(String[] args) {
String a = String.valueOf(1);
String b = String.valueOf(12.0D);
String c = String.valueOf(123.4F);
String d = String.valueOf(123456L);
String s = String.valueOf(true);
String human = String.valueOf(new Human("Alex"));
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(s);
System.out.println(human);
/*
Output:
1
12.0
123.4
123456
true
Person named Alex
*/
}
static class Human {
private String name;
public Human(String name) {
this.name = name;
}
@Override
public String toString() {
return "The Man with the Name" + name;
}
}
}
Bir sətri nömrəyə çevirmək
Tez-tez bir sətri nömrəyə çevirmək lazımdır. Primitiv tipli sarğı sinifləri məhz bu məqsədə xidmət edən metodlara malikdir. Bütün bu üsullar parse sözü ilə başlayır.Integer
Aşağıda sətirin tam ( ) və kəsr ( Double
) ədədlərə tərcüməsini nəzərdən keçirin :
public static void main(String[] args) {
Integer i = Integer.parseInt("12");
Double d = Double.parseDouble("12.65D");
System.out.println(i); // 12
System.out.println(d); // 12.65
}
Sətirlər toplusunun simli təsvirə çevrilməsi
Əgər bəzi sətirlər kolleksiyasının bütün elementlərini ixtiyari ayırıcı vasitəsilə sətir təsvirinə çevirmək lazımdırsa, Java String sinfinin aşağıdakı üsullarından istifadə edə bilərsiniz:join(CharSequence delimiter, CharSequence... elements)
join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
delimiter
Element ayırıcı haradadır və sətir elements
massivi/sətir kolleksiyası nümunəsidir. Hər birini nöqtəli vergüllə ayıraraq sətirlərin siyahısını sətirə çevirdiyimiz nümunəyə baxaq:
public static void main(String[] args) {
List<String> people = Arrays.asList(
"Philip J. Fry",
"Turanga Leela",
"Bender Bending Rodriguez",
"Hubert Farnsworth",
"Hermes Conrad",
"John D. Zoidberg",
"Amy Wong"
);
String peopleString = String.join("; ", people);
System.out.println(peopleString);
/*
Output:
Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong
*/
}
Bir simli sətirlər massivinə bölmək
Bu əməliyyat metodu ilə yerinə yetirilirsplit(String regex)
Ayırıcı sətir nizamlı ifadəsidir regex
. Aşağıdakı nümunədə əvvəlki nümunədə etdiyimiz əməliyyatın əksini yerinə yetirəcəyik:
public static void main(String[] args) {
String people = "Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong";
String[] peopleArray = people.split("; ");
for (String human : peopleArray) {
System.out.println(human);
}
/*
Output:
Philip J. Fry
Turanga Leela
Bender Bending Rodriguez
Hubert Farnsworth
Hermes Conrad
John D. Zoidberg
Amy Wong
*/
}
Xəttdə elementin mövqeyinin müəyyən edilməsi
Java dilində String simvolun/alt sətirin sətirdəki mövqeyini müəyyən etmək üçün bir sıra metodlar təqdim edir:indexOf(int ch)
indexOf(int ch, int fromIndex)
indexOf(String str)
indexOf(String str, int fromIndex)
lastIndexOf(int ch)
lastIndexOf(int ch, int fromIndex)
lastIndexOf(String str)
lastIndexOf(String str, int fromIndex)
ch
— axtardığınız simvol (char
)str
- axtarış sətrifromIndex
— elementin axtarılacağı mövqe- üsullar
indexOf
- tapılan ilk elementin mövqeyini qaytarın - üsullar
lastIndexOf
- tapılan sonuncu elementin mövqeyini qaytarın
A
İngilis əlifbasında , K
, Z
, hərflərinin seriya nömrəsini tapmağa çalışaq Я
, lakin yadda saxlayın ki, Java-da sətirdəki simvolların indeksləşdirilməsi sıfırdan başlayır:
public static void main(String[] args) {
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
System.out.println(alphabet.indexOf('A')); // 0
System.out.println(alphabet.indexOf('K')); // 10
System.out.println(alphabet.indexOf('Z')); // 25
System.out.println(alphabet.indexOf('Я')); // -1
}
Sətirdən alt sətirin çıxarılması
Sətirdən alt sətir çıxarmaq üçün Java-dakı String sinfi üsulları təmin edir:substring(int beginIndex)
substring(int beginIndex, int endIndex)
public static void main(String[] args) {
String filePath = "D:\\Movies\\Futurama.mp4";
int lastFileSeparatorIndex = filePath.lastIndexOf('\\');
String fileName = filePath.substring(lastFileSeparatorIndex + 1);
System.out.println(fileName); //9
}
Sətri böyük/kiçik hərflərə çevirin:
String sinfi sətri böyük və kiçik hərflərə çevirmək üsullarını təqdim edir:toLowerCase()
toUpperCase()
public static void main(String[] args) {
String fry = "Philip J. Fry";
String lowerCaseFry = fry.toLowerCase();
String upperCaseFry = fry.toUpperCase();
System.out.println(lowerCaseFry); // philip j. fry
System.out.println(upperCaseFry); // PHILIP J. FRY
}
Bu Java sinfi ilə işləmək JavaRush onlayn kursunun ilkin səviyyələrində öyrənilir:
- String-ə giriş Java Sintaksis tapşırığının 1-ci səviyyəsində, 4-cü mühazirədə verilir.
- String-in daxili strukturu, substring metodu Java Multithreading axtarışının 2-ci səviyyəsində, 3-cü mühazirəsində öyrənilir.
- Sətirdə alt sətirin tapılması, əldə edilməsi, silinməsi Java Multithreading axtarışının 2-ci səviyyəsində, 4-cü mühazirəsində öyrənilir.
- String.format metodu Java Multithreading axtarışının 2-ci səviyyəsi, 6-cı mühazirədə əhatə olunub
Əlavə mənbələr
String sinfi haqqında məlumat JavaRush icmasının digər məqalələrində də təqdim olunur:- Java-da sətirlər - Bu məqalə Java-da sətirlərlə işləmək üçün bəzi əsasları əhatə edir.
- Java String. Müsahibə sualları və cavabları, 1-ci hissə - bu məqalə mövzu ilə bağlı müsahibə suallarını müzakirə edir
String
, həmçinin izahat və kod nümunələri ilə suallara cavab verir. - Java-da strings (class java.lang.String) - bu məqalə String sinfinin daha dərin təhlilini təqdim edir, həmçinin bu siniflə işləməyin incəliklərini müzakirə edir.
GO TO FULL VERSION