1. తీగలను సవరించడం

జావాలో, తీగలు మారని వస్తువులు. ఇది స్ట్రింగ్ క్లాస్‌ను అత్యంత ఆప్టిమైజ్ చేయడానికి మరియు ప్రతిచోటా ఉపయోగించడానికి అనుమతించడానికి జరిగింది. ఉదాహరణకు, HashMap సేకరణలో కీలుగా ఉపయోగించడానికి మార్పులేని రకాలు మాత్రమే సిఫార్సు చేయబడ్డాయి .

Stringఏదేమైనప్పటికీ, ప్రోగ్రామర్లు తరగతిని మార్చడానికి మరింత సౌకర్యవంతంగా ఉన్నప్పుడు తరచుగా పరిస్థితులు తలెత్తుతాయి . ఒక పద్ధతిని పిలిచిన ప్రతిసారీ కొత్త సబ్‌స్ట్రింగ్‌ను సృష్టించని తరగతిని వారు కోరుకుంటున్నారు.

సరే, మన దగ్గర చాలా పెద్ద స్ట్రింగ్ ఉందని అనుకుందాం మరియు దాని చివరకి మనం తరచుగా ఏదైనా జోడించాలి. ఈ సందర్భంలో, స్ట్రింగ్ ఆబ్జెక్ట్‌లను నిరంతరం పునఃసృష్టించడం మరియు కలపడం కంటే అక్షరాలు ( ) సమాహారం కూడా ArrayList<Character>మరింత ప్రభావవంతంగా ఉంటుంది.

అందుకే ఖచ్చితంగా మార్చగలిగే స్ట్రింగ్ లాంటి రకం జావా భాషకు జోడించబడింది. అని అంటారు StringBuilder.

ఒక వస్తువును సృష్టించడం

ఇప్పటికే ఉన్న స్ట్రింగ్ ఆధారంగా ఆబ్జెక్ట్‌ను సృష్టించడానికి StringBuilder, మీరు ఇలాంటి స్టేట్‌మెంట్‌ను అమలు చేయాలి:

StringBuilder name = new StringBuilder(string);

ఖాళీగా మార్చగల స్ట్రింగ్‌ని సృష్టించడానికి, మీరు ఇలాంటి స్టేట్‌మెంట్‌ను ఉపయోగించాలి:

StringBuilder name = new StringBuilder();

పద్ధతుల జాబితా

తరగతిలో StringBuilderరెండు డజన్ల సహాయక పద్ధతులు ఉన్నాయి. ఇక్కడ చాలా ముఖ్యమైనవి ఉన్నాయి:

పద్ధతి వివరణ
StringBuilder append(obj)
పాస్ చేసిన వస్తువును స్ట్రింగ్‌గా మారుస్తుంది మరియు దానిని ప్రస్తుత స్ట్రింగ్‌కు జోడిస్తుంది
StringBuilder insert(int index, obj)
పాస్ చేసిన వస్తువును స్ట్రింగ్‌గా మారుస్తుంది మరియు దానిని ప్రస్తుత స్ట్రింగ్‌లోకి చొప్పిస్తుంది
StringBuilder replace(int start, int end, String str)
ప్రారంభం..ముగింపు విరామం ద్వారా పేర్కొన్న స్ట్రింగ్ భాగాన్ని పాస్ చేసిన స్ట్రింగ్‌తో భర్తీ చేస్తుంది
StringBuilder deleteCharAt(int index)
స్ట్రింగ్ నుండి పేర్కొన్న సూచికతో అక్షరాన్ని తీసివేస్తుంది
StringBuilder delete(int start, int end)
స్ట్రింగ్ నుండి పేర్కొన్న విరామంలో అక్షరాలను తొలగిస్తుంది
int indexOf(String str, int index)
ప్రస్తుత స్ట్రింగ్‌లో సబ్‌స్ట్రింగ్ కోసం శోధిస్తుంది
int lastIndexOf(String str, int index)
ప్రస్తుత స్ట్రింగ్‌లోని సబ్‌స్ట్రింగ్ కోసం శోధిస్తుంది, చివరి నుండి ప్రారంభమవుతుంది
char charAt(int index)
పాస్ చేసిన సూచికలో స్ట్రింగ్‌లోని అక్షరాన్ని అందిస్తుంది
String substring(int start, int end)
పేర్కొన్న విరామం ద్వారా నిర్వచించబడిన సబ్‌స్ట్రింగ్‌ను అందిస్తుంది
StringBuilder reverse()
ప్రస్తుత స్ట్రింగ్‌ను రివర్స్ చేస్తుంది.
void setCharAt(int index, char)
పేర్కొన్న సూచికలోని అక్షరాన్ని పాస్ చేసిన అక్షరానికి మారుస్తుంది
int length()
అక్షరాల్లో స్ట్రింగ్ పొడవును అందిస్తుంది

ఇక్కడ ప్రతి పద్ధతి యొక్క సంక్షిప్త వివరణ ఉంది


2. పద్ధతుల వివరణ:

స్ట్రింగ్‌కు జోడించడం

మార్చగల స్ట్రింగ్ ( )కి ఏదైనా జోడించడానికి StringBuilder, append()పద్ధతిని ఉపయోగించండి. ఉదాహరణ:

కోడ్ వివరణ
StringBuilder builder = new StringBuilder("Hi");
builder.append("Bye");
builder.append(123);
Hi
HiBye
HiBye123

ప్రామాణిక స్ట్రింగ్‌కి మారుస్తోంది

ఒక వస్తువును స్ట్రింగ్ ఆబ్జెక్ట్‌గా మార్చడానికి , మీరు దాని పద్ధతిని StringBuilderకాల్ చేయాలి . toString()ఉదాహరణ

కోడ్ అవుట్‌పుట్
StringBuilder builder = new StringBuilder("Hi");
builder.append(123);
String result = builder.toString();
System.out.println(result);
Hi123

నేను అక్షరాన్ని ఎలా తొలగించగలను?

మార్చగల స్ట్రింగ్‌లోని అక్షరాన్ని తొలగించడానికి, మీరు పద్ధతిని ఉపయోగించాలి deleteCharAt(). ఉదాహరణ:

కోడ్ అవుట్‌పుట్
StringBuilder builder = new StringBuilder("Hello");
builder.deleteCharAt(2);
String result = builder.toString();
System.out.println(result);
Helo

నేను స్ట్రింగ్‌లోని భాగాన్ని మరొక స్ట్రింగ్‌తో ఎలా భర్తీ చేయాలి?

దీని కోసం ఒక పద్ధతి ఉంది replace(int begin, int end, String str). ఉదాహరణ:

కోడ్ అవుట్‌పుట్
StringBuilder builder = new StringBuilder("Mellow");
builder.replace(2, 5, "Hello!");
String result = builder.toString();
System.out.println(result);
MeHello!w


3. స్ట్రింగ్స్తో పని చేసే ఉపయోగకరమైన ఉదాహరణలు

నేను స్ట్రింగ్‌ను ఎలా రివర్స్ చేయాలి?

దీన్ని చేయడానికి ఒక ప్రత్యేక పద్ధతి ఉంది - reverse(); ఉదాహరణ:

కోడ్ అవుట్‌పుట్
String str = "Hello";
StringBuilder builder = new StringBuilder(str);
builder.reverse();
String result = builder.toString();
System.out.println(result);
olleH

StringBufferతరగతి

మరొక తరగతి ఉంది - స్ట్రింగ్‌బఫర్, ఇది StringBuilderక్లాస్ యొక్క అనలాగ్, కానీ దాని పద్ధతులు మాడిఫైయర్‌తో గుర్తించబడతాయి synchronized. StringBufferబహుళ థ్రెడ్‌ల నుండి ఆబ్జెక్ట్‌ను ఏకకాలంలో యాక్సెస్ చేయవచ్చని దీని అర్థం .

కానీ ఇది కంటే చాలా నెమ్మదిగా ఉంటుంది StringBuilder. మీరు జావా మల్టీథ్రెడింగ్ అన్వేషణలో మల్టీథ్రెడింగ్‌ను చురుకుగా అన్వేషించడం ప్రారంభించినప్పుడు మీకు ఈ తరగతి అవసరం కావచ్చు .