String нь тэмдэгтүүдийн дараалсан цуглуулга бөгөөд маш түгээмэл хэрэглэгддэг.
Объект төрөлтэй. Классын нэр: String .
Жава дээр код бичдэг хэн бүхний мэдэж байх ёстой String-н талаарх чухал 10 зүйлийг толилуулбаас...
1. String класс нь java.lang package-д агуулагддаг. java.lang package-н аливаа клаас нь автоматаар импорт хийгдсэн байдаг учраас String классыг импортлохгүйгээр шууд хэрэглэнэ.
2. String нь цаанаа C/C++ хэлтэй адилхнаар тэмдэгтүүдийн массив байдлаар дүрслэгддэг. Ялгаатай нь гэвэл NULL ('\0') тэмдэгтээр төгсдөггүй.
3. String нь immutable объект юм. Энэ нь нэгэнт оноогдсон объектын утгыг өөрчилж болохгүй гэсэн үг. toUpperCase(), toLowerCase() г.м функцээр утгыг нь өөрчилж болдог биз дээ гэж үү? Үнэндээ бол цаанаа цоо шинэ объект үүсдэг.
4. Java дээр операторыг дахин тодорхойлох боломжгүй боловч String дээр + оператор
дахин тодорхойлогдсон байдаг ба утгуудыг нь хооронд нь залгахад хэрэглэгддэг. Цаанаа StringBuilder, StringBuffer объектууд, тэдний append() функцийн тусламжтайгаар хийгддэг. Хэд хэдэн объект хий дэмий үүсэж байгаа нь хурд, санах ойн хувьд сөрөг нөлөөтэй учраас текст залгахдаа + оперторыг аль болох хэрэглэхгүйгээр StringBuilder, StringBuffer классуудыг ашиглах нь оновчтой.
5. String класст equals, hashcode функцүүд дахин тодорхойлогдсон байдаг ба хоёр String-ийг ижил дараалал бүхий ижил тэмдэгтүүдээс бүрдсэн эсэхийг шалгана. Том жижиг үсгийг тоохгүйгээр харьцуулмаар байвал ("a" == "A") equalsIgnoreCase() функцийг хэрэглэнэ.
6. Давхар кавычка дотор бичиж оноосон текстүүд String literal-д хамаардаг ба String pool-д хадгалагддаг. Ж: "Hello".
7. String pool : Энгийнээр бол String literal-уудыг агуулдаг, удирдан зохион байгуулдаг сав. Доорх жишээний хувьд "Bat", "Dorj", "Tsetseg" нь literal-ууд юм. Дараах 5 мөр кодын үр дүнд 4 объект үүснэ. Учир нь String pool дээр ижилхэн текст өмнө орсон байвал дахиж үүсдэггүй. Тэгэхээр lastName1, lastName2 нь String pool дээр нэг хаягтай байна. Харин lastName3 нь new String() гэж үүсгэсэн учраас шинэ объект болж үүснэ.
String pool нь жавагийн өмнөх хувилбаруудад санах ойн Perm Gen хэсэгт оршдог байсан бол жава 8-аас эхэлж Java heap space-д хадгалагддаг болсон.
8. toString() метод нь Object супер класст тодорхойлогдсон байдаг ба объектыг String-ээр яаж дүрслэх буюу яаж текст болгохыг илэрхийлнэ. Өөрийн класс дотроо дахин тодорхойлж, тохиромжтой утга буцааж хэрэглэх нь чухал. Ж:
9. String-г literal байдлаар зарлахаас гадна byte array, char array, StringBuffer, StringBuilder зэргээс үүсгэх боломжтой. Ж:
10. Түгээмэл хэрэглэгддэг функцүүд: String класс нь маш олон функцүүдтэй. Эдгээрээс хамгийн түгээмэл хэрэглэгддэг зарим нэгийг нь товч тайлбарлая.
indexOf, lastIndexOf: Тэмдэгт эсвэл текстийн эхлэх index-г (lastIndexOf: хамгийн сүүлийн) буцаана. Байхгүй бол -1.
toCharArray: String-г тэмдэгт төрлийн массив болгоно. Яг үнэндээ бол String-н цаана байгаа тэмдэгтүүдийг хуулж, char төрлийн массив үүсгэнэ. Ж:
valueOf: int, long, char, double г.м төрлүүдийг String рүү хөрвүүлнэ. Ж:
charAt: Өгөгдсөн индекст харгалзах тэмдэгтийг буцаана. Ж:
trim: Хоёр талын хоосон зайг шахна.
substring: Текстийн тодорхой хэсгийг буцаана
split: Regex-ээр дэд хэсгүүдэд хуваана
replace: Тодорхой тэмдэгт эсвэл текстийг өөр текстээр солино
replaceAll: Regex-т харгалзах бүх хэсгийг өөр текстээр эсвэл regex-н группээр солино
toUpperCase, toLowerCase: Текстийн бүх үсгийг харгалзан ТОМ, жижиг болгоно.
format: Текстийг форматална. String.format("Hello %s", firstName)
concat, join: Текстүүдийг залгана. String.join(": ", id, name) -> i: name
getBytes: Byte массив руу хөрвүүлнэ. Charset-г нь зааж өгөх боломжтой. "aa".getBytes(), "aa".getBytes("UTF-8")
Объект төрөлтэй. Классын нэр: String .
Жава дээр код бичдэг хэн бүхний мэдэж байх ёстой String-н талаарх чухал 10 зүйлийг толилуулбаас...
1. String класс нь java.lang package-д агуулагддаг. java.lang package-н аливаа клаас нь автоматаар импорт хийгдсэн байдаг учраас String классыг импортлохгүйгээр шууд хэрэглэнэ.
2. String нь цаанаа C/C++ хэлтэй адилхнаар тэмдэгтүүдийн массив байдлаар дүрслэгддэг. Ялгаатай нь гэвэл NULL ('\0') тэмдэгтээр төгсдөггүй.
3. String нь immutable объект юм. Энэ нь нэгэнт оноогдсон объектын утгыг өөрчилж болохгүй гэсэн үг. toUpperCase(), toLowerCase() г.м функцээр утгыг нь өөрчилж болдог биз дээ гэж үү? Үнэндээ бол цаанаа цоо шинэ объект үүсдэг.
4. Java дээр операторыг дахин тодорхойлох боломжгүй боловч String дээр + оператор
дахин тодорхойлогдсон байдаг ба утгуудыг нь хооронд нь залгахад хэрэглэгддэг. Цаанаа StringBuilder, StringBuffer объектууд, тэдний append() функцийн тусламжтайгаар хийгддэг. Хэд хэдэн объект хий дэмий үүсэж байгаа нь хурд, санах ойн хувьд сөрөг нөлөөтэй учраас текст залгахдаа + оперторыг аль болох хэрэглэхгүйгээр StringBuilder, StringBuffer классуудыг ашиглах нь оновчтой.
5. String класст equals, hashcode функцүүд дахин тодорхойлогдсон байдаг ба хоёр String-ийг ижил дараалал бүхий ижил тэмдэгтүүдээс бүрдсэн эсэхийг шалгана. Том жижиг үсгийг тоохгүйгээр харьцуулмаар байвал ("a" == "A") equalsIgnoreCase() функцийг хэрэглэнэ.
6. Давхар кавычка дотор бичиж оноосон текстүүд String literal-д хамаардаг ба String pool-д хадгалагддаг. Ж: "Hello".
7. String pool : Энгийнээр бол String literal-уудыг агуулдаг, удирдан зохион байгуулдаг сав. Доорх жишээний хувьд "Bat", "Dorj", "Tsetseg" нь literal-ууд юм. Дараах 5 мөр кодын үр дүнд 4 объект үүснэ. Учир нь String pool дээр ижилхэн текст өмнө орсон байвал дахиж үүсдэггүй. Тэгэхээр lastName1, lastName2 нь String pool дээр нэг хаягтай байна. Харин lastName3 нь new String() гэж үүсгэсэн учраас шинэ объект болж үүснэ.
String firstName1 = "Bat";
String lastName1 = "Dorj";
String firstName2 = "Tsetseg";
String lastName2 = "Dorj";
String lastName3 = new String("Dorj");
Дээрх жишээний хувьд lastName1 == lastName2, lastName1 != lastName3, lastName1.equals(lastName2) == True, lastName1.equals(lastName3) == True байна.String pool нь жавагийн өмнөх хувилбаруудад санах ойн Perm Gen хэсэгт оршдог байсан бол жава 8-аас эхэлж Java heap space-д хадгалагддаг болсон.
8. toString() метод нь Object супер класст тодорхойлогдсон байдаг ба объектыг String-ээр яаж дүрслэх буюу яаж текст болгохыг илэрхийлнэ. Өөрийн класс дотроо дахин тодорхойлж, тохиромжтой утга буцааж хэрэглэх нь чухал. Ж:
public static class Language {
private String name;
private int rank;
public Language(String name, int rank) {
super();
this.name = name;
this.rank = rank;
}
public String getName() {
return name;
}
public int getRank() {
return rank;
}
@Override
public String toString() {
return String.format("%s: %s", this.name, this.rank);
}
}
9. String-г literal байдлаар зарлахаас гадна byte array, char array, StringBuffer, StringBuilder зэргээс үүсгэх боломжтой. Ж:
byte[] bytes = new byte[10];
String s = new String(bytes);
char[] chars = new char[10];
s = new String(chars);
StringBuffer buffer = new StringBuffer();
s = buffer.toString();
StringBuilder builder = new StringBuilder();
s = builder.toString();
10. Түгээмэл хэрэглэгддэг функцүүд: String класс нь маш олон функцүүдтэй. Эдгээрээс хамгийн түгээмэл хэрэглэгддэг зарим нэгийг нь товч тайлбарлая.
indexOf, lastIndexOf: Тэмдэгт эсвэл текстийн эхлэх index-г (lastIndexOf: хамгийн сүүлийн) буцаана. Байхгүй бол -1.
String s = "Hello";
int ix1 = s.indexOf('l');
int ix2 = s.lastIndexOf("l");
int ix3 = s.indexOf("hi");
System.out.println(String.format("Result: ix1: %s, ix2: %s, ix3: %s ", ix1, ix2, ix3));
Result: ix1: 2, ix2: 3, ix3: -1
toCharArray: String-г тэмдэгт төрлийн массив болгоно. Яг үнэндээ бол String-н цаана байгаа тэмдэгтүүдийг хуулж, char төрлийн массив үүсгэнэ. Ж:
String s = "Hello";
char[] chars = s.toCharArray();
valueOf: int, long, char, double г.м төрлүүдийг String рүү хөрвүүлнэ. Ж:
int i = 10;
String iStr = String.valueOf(i);
double d = 10.0;
String dStr = String.valueOf(d);
System.out.println(String.format("Result: %s %s", iStr, dStr));
Result: 10 10.0
charAt: Өгөгдсөн индекст харгалзах тэмдэгтийг буцаана. Ж:
String s = "Hello";
System.out.println(String.format("Result: %c", s.charAt(1)));
Result: e
trim: Хоёр талын хоосон зайг шахна.
substring: Текстийн тодорхой хэсгийг буцаана
split: Regex-ээр дэд хэсгүүдэд хуваана
replace: Тодорхой тэмдэгт эсвэл текстийг өөр текстээр солино
replaceAll: Regex-т харгалзах бүх хэсгийг өөр текстээр эсвэл regex-н группээр солино
toUpperCase, toLowerCase: Текстийн бүх үсгийг харгалзан ТОМ, жижиг болгоно.
format: Текстийг форматална. String.format("Hello %s", firstName)
concat, join: Текстүүдийг залгана. String.join(": ", id, name) -> i: name
getBytes: Byte массив руу хөрвүүлнэ. Charset-г нь зааж өгөх боломжтой. "aa".getBytes(), "aa".getBytes("UTF-8")
Comments
Post a Comment