Theory
librarian human જેવી types કરે છે
આ અઠવાડિયાના front desk પરથી real input:
" let us c " (stray spaces), "" (કંઈ ન હોય ત્યારે Enter દબાયું), "Programming in ANSI C by Balagurusamy" (ફક્ત title part ની જરૂર).
BookBridge એ બધું clean, test, slice અને search કરવું જોઈએ. Java ની String class exactly આ માટે toolbox ship કરે છે, અને તમારા syllabus એ 11 tools ને names કરે છે. એમને 2 jobs સાથે family તરીકે શીખો: methods જે string ને inspect કરે છે, અને methods જે new one produce કરે છે (ક્યારેય ભૂલ્યા વગર: immutable, હંમેશા new).
Theory
પહેલા, Java જેવી count કરવાનું શીખો
નીચે ની દરેક method indexes, 0 થી starting માં બોલે છે. આ example ને pin કરો:
"Let Us C"
L e t ␣ U s ␣ C
0 1 2 3 4 5 6 7
એટલે length() એ 8 છે (count), પણ last index એ 7 છે (count minus 1). charAt(4) એ 'U' છે. count અને last index ને mix up કરવાથી StringIndexOutOfBoundsException આવે છે જે તમારા batch નો અડધો આ અઠવાડિયે meet કરશે.
At a glance
Inspectors: ask, never change
| Method | Answers | "Let Us C" પર |
|---|---|---|
| length() | કેટલા characters? | 8 |
| charAt(4) | કયો char index 4 પર sits કરે છે? | 'U' |
| indexOf("s") | આ text નો first index, અથવા -1 | 5 |
| lastIndexOf(" ") | આ text નો last index, અથવા -1 | 6 |
| isEmpty() | શું length() == 0? | false |
| equals(s) | Same characters? (last lesson) | content check |
At a glance
Producers: દરેક result એ NEW string છે
| Method | Produces | Example |
|---|---|---|
| trim() | leading/trailing spaces વગર Copy | " let us c ".trim() → "let us c" |
| substring(4) | index 4 થી end સુધી | "Let Us C" → "Us C" |
| substring(0, 3) | Indexes 0,1,2: end EXCLUSIVE | "Let Us C" → "Let" |
| concat(s) | This string + s joined | "Book".concat("Bridge") → "BookBridge" |
| split(" ") | pieces નું String[] | "Let Us C" → {"Let","Us","C"} |
| String.join("-", parts) | separator સાથે glued pieces (static) | join("-","a","b") → "a-b" |
Practical
એક messy entry ને end to end cleaning
public class CleanTitle {
public static void main(String[] args) {
String raw = " let us c ";
String t = raw.trim(); // "let us c"
System.out.println(t.length()); // 8
System.out.println(t.isEmpty()); // false
System.out.println(t.indexOf("us")); // 4
System.out.println(t.charAt(0)); // l
String[] words = t.split(" "); // {"let","us","c"}
System.out.println(words.length); // 3 (field, no brackets!)
System.out.println(String.join("-", words)); // let-us-c
}
}
Quiz
"Let Us C".substring(4, 6) શું return કરે છે?
- "Us"
- "Us "
- " Us"
- "s C"
Show the answer
"Us"
substring(begin, end) એ indexes begin up to end EXCLUSIVE લે છે: indexes 4 અને 5, characters 'U' અને 's', એટલે "Us". Option B index 6 (space) ને include કરે છે, students માટે classic off-by-one જેઓ end ને inclusive તરીકે read કરે છે. examiners themselves use કરે છે એ quick self-check: result ની length હંમેશા end minus begin છે, અહીં 6 - 4 = 2 characters. જો તમારા answer ની length wrong હોય, indexes ને re-read કરો.
Think first
-1 sentinel
t જ્યારે "let us c" હોય ત્યારે t.indexOf("Python"): ત્યાં ક્યાંય Python નથી. tap કરતા પહેલા: શું પાછું આવે છે, અને શા માટે એ particular value?
Show the answer
-1. એ 0 અથવા કોઈ positive number નથી હોઈ શકતું, કારણ કે એ દરેક real index છે જ્યાં match COULD sit કરી શકે; -1 એ એક integer છે જે ક્યારેય position નથી હોઈ શકતો, એટલે એ safely "not found" નો અર્થ કરે છે. BookBridge માં everywhere working idiom: if (t.indexOf(q) != -1) { found }. check ને forget કરવું અને -1 ને substring અથવા charAt માં index તરીકે use કરવું એ instant runtime exception છે.
Watch out
Three habits જે marks lose કરે છે
length() vs length: String પર તે brackets સાથે method છે, array પર brackets વગર field છે: t.length() પણ words.length. Exams બંને ને એક snippet માં plant કરે છે, exactly આપણી listing જેવું.
Results are new strings ને Forget કરવું: t.trim(); alone કંઈ clean નથી કરતું; assign કરો: t = t.trim();
charAt(t.length()) 8-character string ના index 8 ને asks કરે છે: StringIndexOutOfBoundsException. છેલ્લો character length() - 1 પર lives કરે છે.
Theory
એમને plumbing જેવું compose કરો
methods chain થાય છે, કારણ કે દરેક producer String return કરે છે જે next call માટે ready છે: raw.trim().substring(0, 3).equals("let") clean, slice, test તરીકે reads થાય છે. એ composability છે જે આ 11 most text work ને cover કરે છે જે BookBridge ને ever need થશે. જ્યારે job એક growing text નું heavy repeated EDITING બને છે, ત્યારે new-string producers ને chain કરવું wasteful બને છે, અને એ exactly next lesson ના StringBuffer માટે cue છે.
Summary
Key takeaways
- Indexes 0 થી start થાય છે; length() characters ને count કરે છે, last index એ length() - 1 છે.
- Inspectors: length, charAt, indexOf, lastIndexOf, isEmpty, equals.
- Producers (હંમેશા NEW string): trim, substring, concat, split, અને static String.join.
- substring(begin, end) end-exclusive છે; result length = end - begin.
- indexOf/lastIndexOf not found માટે -1 return કરે છે: use કરતા પહેલા check કરો.
- String length() બ્રેકેટ ધરાવે છે; array length નથી ધરાવતું.
- Memory hook: inspectors ask કરે છે, producers તમને fresh copy hand કરે છે.