تغییر بزرگی و کوچکی حروف یک رشته

مي توان بزرگي و کوچکي حروف يک رشته را تغيير داد. به عنوان مثال يک رشته که متشکل از حروف کوچک است را مي توان به حروف بزرگ تبديل کرد. با استفاده از متدهاي ()toUpperCase و ()toLowerCase مي توان حروف رشته را بزرگ يا کوچک کرد.

String lowercase = "abc";
String uppercase = "ABC";

System.out.println("lowercase.toUpperCase() = " + lowercase.ToUpper());
System.out.println("uppercase.toLowerCase() = " + uppercase.ToLower());
lowercase.toUpperCase() = ABC
uppercase.toLowerCase() = abc

به اين نکته توجه کنيد که اگر بخواهيم يک رشته به عنوان مثال يک جمله که از حروف بزرگ و کوچک تشکيل شده است، مثلا حرف اول هر کلمه بزرگ و بقيه حروف کوچک نوشته شده باشند را با استفاده از متد ()toUpperCase تغيير دهيم فقط حروف کوچک آن تغيير کرده و بزرگ مي شوند و حروفي که از قبل بزرگ بوده اند تغيير نمي کنند. اين نکته در مورد متد ()toLowerCase نيز صدق مي کند.
حال بياييد يک متدي ايجاد کنيم که حرف اول کلمات هر رشته اي که به آن ارسال مي شود را به صورت بزرگ و بقيه را به صورت کوچک تبديل کند.
در اين برنامه از متدهاي دستکاري رشته که تا به حال ياد گرفته ايم استفاده شده است.

   1: package program;
   2: 
   3: import java.util.*;
   4: 
   5: public class Program 
   6: {
   7:     static String ToTitleCase(String str)
   8:     {
   9:         String[] words = str.split(" ");
  10: 
  11:         for(int i = 0; i < words.length; i++)
  12:         {
  13:             String firstLetter = words[i].substring(0, 1);         
  14:             String rest = words[i].substring(1);                   
  15:             String result = firstLetter.toUpperCase()+ rest.toLowerCase();
  16:             words[i] = result;
  17:         }
  18: 
  19:         return String.join(" ", words);
  20:     }
  21:     
  22:     public static void main(String[] args) 
  23:     {
  24:         Scanner input = new Scanner(System.in);
  25:         
  26:         String str1;
  27: 
  28:         System.out.print("Enter a string: ");
  29:         str1 = input.nextLine();
  30:                 
  31:         System.out.println("Converting to Title Case...");
  32:         str1 = ToTitleCase(str1);
  33: 
  34:         System.out.println(str1);       
  35:     }  
  36: }
Enter a string:
tHe quICK bROwN fOx
Converting to Title Case...
The Quick Brown Fox

در مثال بالا يک متد به نام ToTitleCase ايجاد کرده ايم (خطوط 20-7) که يک رشته را به عنوان آرگومان قبول مي کند.ابتدا با استفاده از متد ()split رشته را به کلمات تشکيل دهنده اش تقسيم بندي ميکنيم، بنابراين مي توان هر رشته را به صورت جداگانه دستکاري کرد.

String[] words = str.split(" ");

سپس با استفاده از يک حلقه for در ميان کلمات گردش مي کنيم (خطوط 17-11).

String firstLetter = words[i].substring(0, 1);
String rest = words[i].substring(1);

اولين حرف هر کلمه را با استفاده از متد ()substring استخراج و در يک متغير براي استفاده هاي بعدي ذخيره مي کنيم (خط 13). باقيمانده حروف کلمات را استخراج مي کنيم.

String result = firstLetter.ToUpper() + rest.ToLower();

حال رشته ها را با هم ترکيب مي کنيم البته از متد ()toUpperCase براي بزرگ کردن حروف اول و از متد ()toLowerCase براي بزرگ کردن بقيه حروف کلمات استفاده مي کنيم. بعد از اين کار عناصر آرايه را با کلمات اصلاح شده جايگزين مي کنيم.

return String.join(" ", words);

سپس کلمات اصلاح شده را با استفاده از متد ()join (خط 19) ترکيب کرده و در بين آنها فضاي خالي قرار مي دهيم. سپس آنها را به متد فراخوان برگشت مي دهيم.