Javaдагы String классы Java тorндеги саптар менен иштөө үчүн иштелип чыккан. Java программасында аныкталган бардык сап литералдары (мисалы, "abc") String классынын инстанциялары болуп саналат. анын негизги өзгөчөлүктөрүн карап көрөлү:
- Класс
Serializable
жана интерфейстерин ишке ашыратCharSequence
. Ал пакетке киргизилгендиктенjava.lang
, аны импорттоонун кереги жок. - Java тorндеги String классы акыркы класс жана балалуу боло алbyte.
- String классы өзгөрүлгүс класс, башкача айтканда, анын an objectилери түзүлгөндөн кийин өзгөртүлбөйт. String классынын an objectисине алып келе турган String an objectиндеги бардык операциялар жаңы an objectти түзүүгө алып келет.
- Өздөрүнүн өзгөрүлбөстүгүнө байланыштуу String классынын an objectтери жип коопсуз жана көп жиптүү чөйрөдө колдонулушу мүмкүн.
toString
Javaдагы ар бир an object бардык Java класстары класстан мураска алынган метод аркылуу сапка айландырылатObject
.
Java String менен иштөө
Бул Javaда эң көп колдонулган класстардын бири. Анын саптагы айрым символдорду талдоо, саптарды салыштыруу жана издөө, ички саптарды чыгаруу, бардык символдор кичине жана чоң регистрге айландырылган саптын көчүрмөсүн түзүү жана башка ыкмалары бар. String классынын бардык ыкмаларынын тизмесин расмий documentтерден тапса болот . Java ошондой эле примитивдерди сапка айландыруучу жана тескерисинче бириктирүүнүн (саптарды бириктирүү) жөнөкөй механизмин ишке ашырат. Келгиле, Java тorнде String классы менен иштөөнүн айрым мисалдарын карап көрөлү.Саптарды түзүү
String классынын үлгүсүн түзүүнүн эң оңой жолу - ага саптын литералынын маанисин ыйгаруу:String s = "I love movies";
Бирок, String классында сизге мүмкүнчүлүк берген көптөгөн конструкторлор бар:
- бош сапты камтыган an object түзүү
- сап өзгөрмөнүн көчүрмөсүн түзүү
- символдор массивинин негизинде сап түзүңүз
- byte массивинин негизинде сап түзүү (codeдоолорду эске алуу менен)
- жана башкалар.
Сап кошуу
Java менен эки сапты кошуу абдан жөнөкөй+
. Java сизге өзгөрмөлөрдү жана сап литералдарын бири-бирине кошууга мүмкүндүк берет:
public static void main(String[] args) {
String day = "Day";
String and = "And";
String night = "Night";
String dayAndNight = day + " " + and + " " + night;
}
String классынын an objectтерин башка класстардын an objectилерине кошуу менен, биз акыркысын сап формасына азайтабыз. Башка класстардагы an objectилерди сап көрсөтүүгө конвертациялоо toString
an objectте имплициттүү методдук чакыруу аркылуу ишке ашырылат. Муну төмөнкү мисал менен көрсөтөлү:
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;
}
}
}
Сапты салыштыруу
Саптарды салыштыруу үчүн төмөнкү ыкманы колдонсоңуз болотequals()
:
public static void main(String[] args) {
String x = "Test String";
System.out.println("Test String".equals(x)); // true
}
Саптарды салыштырганда биз үчүн жагдай маанилүү болбогондо, төмөнкү ыкманы колдонушубуз керек equalsIgnoreCase()
:
public static void main(String[] args) {
String x = "Test String";
System.out.println("test string".equalsIgnoreCase(x)); // true
}
Объектти/примитивди сапка айландыруу
Каалаган Java классынын үлгүсүн же кандайдыр бир примитивдүү маалымат түрүн сап көрсөтүүгө айландыруу үчүн, төмөнкү ыкманы колдонсоңуз болотString.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;
}
}
}
Сапты санга айландыруу
Көбүнчө сапты санга айландыруу керек. Примитивдик түрдөгү орогуч класстары дал ушул максатка кызмат кылган методдорго ээ. Бул ыкмалардын баары талдоо сөзүнөн башталат. Төмөндө сапты бүтүн (Integer
) жана бөлчөк ( ) сандарга которууну карап көрөлү :Double
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
}
Саптардын жыйнагын сап көрсөтүүсүнө айландыруу
Эгер кандайдыр бир саптар жыйнагынын бардык элементтерин ыктыярдуу бөлгүч аркылуу сап көрсөтүүгө айландыруу керек болсо, Java String классынын төмөнкү ыкмаларын колдонсоңуз болот:join(CharSequence delimiter, CharSequence... elements)
join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
delimiter
Элемент бөлгүч кайда жана elements
сап массив/сап чогултуу инстанциясы. Ар бирин чекиттүү үтүр менен бөлүп, саптардын тизмесин сапка айландырган мисалды карап көрөлү:
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
*/
}
Сапты саптардын массивине бөлүү
Бул операция ыкмасы менен аткарылатsplit(String regex)
Сепаратор сап туруктуу туюнтмасы regex
. Төмөнкү мисалда биз мурунку мисалда жасаганга карама-каршы операцияны жасайбыз:
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
*/
}
Элементтин сызыктагы ордун аныктоо
Java тorнде, String саптагы символдун/под саптын ордун аныктоо үчүн ыкмалардын топтомун камсыз кылат: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
— сиз издеп жаткан символ (char
)str
- издөө сабыfromIndex
— элементти издөө үчүн позиция- ыкмалар
indexOf
- табылган биринчи элементтин ордун кайтаруу - ыкмалар
lastIndexOf
- табылган акыркы элементтин ордун кайтаруу
A
Келгиле, англис алфавитиндеги , K
, Z
, тамгаларынын сериялык номерин табууга аракет кылалы Я
, бирок Java тorндеги сапта символдорду индекстөө нөлдөн башталаарын унутпаңыз:
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
}
Саптан субсапты чыгаруу
Саптан субсапты чыгаруу үчүн Javaдагы String классы төмөнкү ыкмаларды берет: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
}
Сапты чоң/кичи регистрге айландыруу:
String классы сапты чоң жана кичине регистрге которуу ыкмаларын камсыз кылат: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
}
Бул Java классы менен иштөө JavaRush онлайн курсунун баштапкы деңгээлинде окулат:
- Стрингге киришүү Java синтаксисинин квестинин 1-деңгээлинде, 4-лекциясында берилген
- Stringдин ички түзүлүшү, substring ыкмасы Java Multithreading квестинин 2-деңгээлинде, 3-лекциясында изилденет.
- Стрингдеги субсапты табуу, алуу, жок кылуу Java Multithreading квестинин 2-деңгээлинде, 4-лекциясында окулат
- String.format ыкмасы Java Multithreading квестинин 2-деңгээлинде, 6-лекциясында камтылган.
Кошумча булактар
String классы тууралуу маалымат JavaRush коомчулугунун башка макалаларында да берилген:- Java'дагы саптар - Бул макалада Java тorндеги саптар менен иштөөнүн кээ бир негиздери камтылган.
- Java String. Интервью суроолору жана жооптору, 1-бөлүк - бул макалада тема боюнча интервью суроолору талкууланат
String
, ошондой эле түшүндүрмөлөр жана codeдуу мисалдар менен суроолорго жооп берет. - Java тorндеги strings (class java.lang.String) - бул макалада String классына тереңирээк талдоо берилет, ошондой эле бул класс менен иштөөнүн татаалдыктары талкууланат.
GO TO FULL VERSION