איך להסיר תו ממחרוזת ב-Java

הקדמה

במאמר זה, תלמד כמה דרכים שונות להסרת תו מאובייקט String ב-Java. אף על פי שכיתת String אין בה שיטה של remove(), תוכל להשתמש בשילובים של שיטת replace() ושיטת substring() כדי להסיר תווים ממחרוזות.

הערה: אובייקטי String הם לא שינויים, שזה אומר שלא ניתן לשנות אותם לאחר שנוצרו. כל השיטות של מחלקת String שתוארו במאמר זה מחזירות אובייקט String חדש ולא משנות את האובייקט המקורי. סוג המחרוזת שתשתמש בה תלוי בדרישות התוכנית שלך. למידע נוסף על סוגים אחרים של מחלקות מחרוזות ועל סיבות לשינויי אי-השינוי ב-Java.

במחלקת String ישנם השיטות הבאות שתוכל להשתמש בהן כדי להחליף או להסיר תווים:

  • replace(char oldChar, char newChar): מחזיר אובייקט String חדש שמחליף את כל המופעים של oldChar במחרוזת הנתונה עם newChar. תוכל גם להשתמש בשיטת replace(), בפורמט replace(CharSequence target, CharSequence replacement), כדי להחזיר אובייקט String חדש שמחליף מחרוזת משנה במחרוזת הנתונה.
  • replaceFirst(String regex, String replacement): מחזיר אובייקט String חדש שמחליף את תת-המחרוזת הראשונה שמתאימה לביטוי הרגולרי במחרוזת הנתונה עם ההחלפה.
  • replaceAll(String regex, String replacement): מחזיר אובייקט String חדש שמחליף כל תת-מחרוזת שמתאימה לביטוי הרגולרי במחרוזת הנתונה עם ההחלפה.
  • substring(int start, int end): מחזיר אובייקט String חדש שמכיל חלק תת-סדרה של תווים שנמצאים כרגע בסדר זה. החלק מתחיל במיקום המוגדר ומשתרע עד לתו הממוקם במיקום הסופי המוגדר פחות 1.

שים לב שהפרמטר הראשון לשיטות replaceAll() ו-replaceFirst() הוא ביטוי רגולרי. ניתן להשתמש בביטוי רגולרי כדי להסיר דפוס ממחרוזת.

הערה: עליך להשתמש בגרשיים כפולות כדי לציין ערכי מחרוזת סטנדרטיים כאשר אתה משתמש בשיטות replace(). אם תשתמש בגרש יחיד, אז הJRE יניח שאתה מציין תו קבוע ותקבל שגיאה בעת ההידור של התוכנית.

הסרת תו ממחרוזת ב-Java

ניתן להסיר את כל המופעים של תו מתוך מחרוזת ב-Java על ידי שימוש בשיטת replace() להחלפת התו עם מחרוזת ריקה. הדוגמה הבאה מסירה את כל המופעים של התו "a" באותיות קטנות מהמחרוזת הנתונה:

String str = "abc ABC 123 abc";
String strNew = str.replace("a", "");
Output
bc ABC 123 bc

הסרת רווחים ממחרוזת ב-Java

ניתן להסיר רווחים ממחרוזת ב-Java על ידי שימוש בשיטת replace() להחלפת הרווחים במחרוזת ריקה. הדוגמה הבאה מסירה את כל הרווחים מהמחרוזת הנתונה:

String str = "abc ABC 123 abc";
String strNew = str.replace(" ", "");
Output
abcABC123abc

הסרת מחרוזת מתוך מחרוזת ב-Java

ניתן להסיר רק את המופע הראשון של תו או מחרוזת ממחרוזת ב-Java על ידי שימוש בשיטת replaceFirst() להחלפת התו או המחרוזת עם מחרוזת ריקה. הדוגמה הבאה מסירה את המופע הראשון של "ab" מהמחרוזת הנתונה:

String str = "abc ABC 123 abc";
String strNew = str.replaceFirst("ab", "");
Output
c ABC 123 abc

הסרת כל האותיות הקטנות ממחרוזת ב-Java

ניתן להשתמש בביטוי רגולרי כדי להסיר תווים שתואמים תבנית נתונה ממחרוזת ב-Java על ידי שימוש בשיטת replace.All() כדי להחליף את התווים במחרוזת ריקה. הקוד בדוגמה הבאה מסיר את כל האותיות הקטנות מהמחרוזת הנתונה:

String str = "abc ABC 123 abc";
String strNew = str.replaceAll("([a-z])", "");
Output
ABC 123

הסרת התו האחרון ממחרוזת ב-Java

אין שיטה ספציפית להחלפה או הסרה של התו האחרון ממחרוזת, אך ניתן להשתמש בשיטת substring() של String כדי לחתוך את המחרוזת. הקוד בדוגמה הבאה מסיר את התו האחרון מהמחרוזת הנתונה:

String str = "abc ABC 123 abc";
String strNew = str.substring(0, str.length()-1);
Output
abc ABC 123 ab

נסה את זה

הקובץ לדוגמא הבא מגדיר קוביה שכוללת את כל דוגמאות השיטות המסופקות במאמר זה ומדפיסה את התוצאות לאחר הפעלת כל שיטה על המחרוזת הנתונה. ניתן להשתמש בקוד הדוגמא זה כדי לנסות זאת בעצמך על מחרוזות שונות באמצעות דפוסי התאמה וערכי ההחלפה השונים.

אם יש לך את Java מותקנת, תוכל ליצור קובץ חדש בשם JavaStringRemove.java ולהוסיף את הקוד הבא לקובץ:

JavaStringRemove.java

public class JavaStringRemove {

	public static void main(String[] args) {
    	String str = "abc ABC 123 abc";

		// הסרת תו ממחרוזת ב-Java
		System.out.println("String after removing all the 'a's = "+str.replace("a", ""));

		// הסרת רווחים ממחרוזת ב-Java
		System.out.println("String after removing all the spaces = "+str.replace(" ", ""));

		// הסרת מחרוזת ממחרוזת ב-Java
		System.out.println("String after removing the first 'ab' substring = "+str.replaceFirst("ab", ""));

		// הסרת כל האותיות הקטנות ממחרוזת ב-Java
		System.out.println("String after removing all the lowercase letters = "+str.replaceAll("([a-z])", ""));

		// הסרת התו האחרון ממחרוזת ב-Java
		System.out.println("String after removing the last character = "+str.substring(0, str.length()-1));
	}

}

היכנס להרצת התוכנית והפעל אותה:

  1. javac JavaStringRemove.java
  2. java JavaStringRemove

תקבל את הפלט הבא:

Output
String after removing all the 'a's = bc ABC 123 bc String after removing all the spaces = abcABC123abc String after removing the first 'ab' substring = c ABC 123 abc String after removing all the lowercase letters = ABC 123 String after removing the last character = abc ABC 123 ab

כל שיטה בדוגמא של JavaStringRemove פועלת על המחרוזת הנתונה. הפלט מראה שהתווים שצויינו בכל שיטה הוסרו מהמחרוזת.

מסקנה

במאמר זה למדת דרכים שונות להסרת תווים ממחרוזות ב-Java באמצעות שיטות מתוך כיתת String, כולל replace(), replaceAll(), replaceFirst(), ו־substring(). המשך את הלמידה שלך עם עוד מדריכי Java.

Source:
https://www.digitalocean.com/community/tutorials/java-remove-character-string