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வர்க்கம்

மற்றொரு வகுப்பு உள்ளது - StringBuffer, இது வகுப்பின் அனலாக் ஆகும் StringBuilder, ஆனால் அதன் முறைகள் மாற்றியமைப்புடன் குறிக்கப்படுகின்றன synchronized. StringBufferபல நூல்களில் இருந்து பொருளை ஒரே நேரத்தில் அணுக முடியும் என்று அர்த்தம் .

ஆனால் அதை விட மிகவும் மெதுவாக உள்ளது StringBuilder. ஜாவா மல்டித்ரெடிங் தேடலில் மல்டித்ரெடிங்கை நீங்கள் தீவிரமாக ஆராயத் தொடங்கும் போது உங்களுக்கு இந்த வகுப்பு தேவைப்படலாம் .