כיצד להפוך מחרוזת ב- Java

1. סקירה כללית

במדריך מהיר זה, אנו הולכים לראות כיצד אנו יכולים להפוך א חוּט בג'אווה.

נתחיל לבצע את העיבוד הזה באמצעות פתרונות Java פשוטים. לאחר מכן, נבחן את האפשרויות שמציעות ספריות צד שלישי כמו Apache Commons.

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

2. מסורתי ל לוּלָאָה

אנו יודעים כי מיתרים אינם ניתנים לשינוי ב- Java. אובייקט בלתי ניתן לשינוי הוא אובייקט אשר שלו המצב הפנימי נשאר קבוע לאחר שהיא נוצרה כולה.

לכן, איננו יכולים להפוך א חוּט על ידי שינוי זה. עלינו ליצור עוד אחד חוּט מהסיבה הזו.

ראשית, בואו נראה דוגמה בסיסית באמצעות a ל לוּלָאָה. אנחנו הולכים לחזור על ה חוּט קלט מהרכיב האחרון לראשון ושרשר כל תו לחדש חוּט:

ציבורי הפוך מחרוזת (קלט מחרוזת) {if (input == null) {קלט החזרה; } פלט מחרוזת = ""; עבור (int i = input.length () - 1; i> = 0; i--) {output = output + input.charAt (i); } פלט החזר; }

כפי שאנו רואים, עלינו להיזהר במקרי הפינה ולטפל בהם בנפרד.

על מנת להבין טוב יותר את הדוגמה, אנו יכולים לבנות מבחן יחידה:

@Test הציבור בטל כאשרReverseIsCalled_ThenCorrectStringIsReturned () {String reversed = ReverseStringExamples.reverse ("cat"); String reversedNull = ReverseStringExamples.reverse (null); מחרוזת reversedEmpty = ReverseStringExamples.reverse (StringUtils.EMPTY); assertEquals ("טאק", הפוך); assertEquals (null, reversedNull); assertEquals (StringUtils.EMPTY, reversedEmpty); }

3. א StringBuilder

ג'אווה מציעה גם כמה מנגנונים כמו StringBuilder ו StringBuffer שיוצרים רצף דמויות משתנה. לאובייקטים אלה יש לַהֲפוֹך() שיטה שעוזרת לנו להשיג את התוצאה הרצויה.

כאן, עלינו ליצור StringBuilder מ ה חוּט קלט ואז התקשר ל לַהֲפוֹך() שיטה:

מחרוזת ציבורית reverseUsingStringBuilder (קלט מחרוזת) {if (input == null) {return null; } פלט StringBuilder = StringBuilder חדש (קלט). הפוך (); return output.toString (); }

4. אפאצ'י קומונס

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

כרגיל, כדי להתחיל להשתמש ב- Apache Commons, ראשית עלינו להוסיף את התלות של Maven:

 org.apache.commons commons-lang3 3.9 

ה StringUtils הכיתה היא מה שאנחנו צריכים כאן מכיוון שהיא מספקת את לַהֲפוֹך() שיטה דומה ל- StringBuilder.

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

בואו ניצור שיטה שמגשימה את מטרתנו ומשתמשת ב- StringUtils מעמד:

ציבורי מחרוזת reverseUsingApacheCommons (קלט מחרוזת) {להחזיר StringUtils.reverse (קלט); }

כעת, כשמסתכלים על שלוש השיטות הללו, אנחנו בהחלט יכולים לומר שהשלישית היא ה הכי פשוט והכי פחות נוטה לשגיאות דרך להפוך א חוּט.

5. היפוך סדר המילים במשפט

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

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

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

מחרוזת ציבורית reverseTheOrderOfWords (משפט מחרוזת) {if (משפט == null) {להחזיר null; } פלט StringBuilder = StringBuilder חדש (); מחרוזת [] מילים = משפט.ספליט (""); עבור (int i = words.length - 1; i> = 0; i--) {output.append (המילים [i]); output.append (""); } להחזיר output.toString (). לקצץ (); }

שנית, נשקול להשתמש בספריית Apache Commons. שוב, זה עוזר לנו להשיג קוד קריא יותר ופחות נוטה לשגיאות. אנחנו רק צריכים להתקשר ל StringUtils.reverseDelimited () שיטה עם משפט הקלט ומפריד כטיעונים:

מחרוזת ציבורית reverseTheOrderOfWordsUsingApacheCommons (משפט מחרוזת) {return StringUtils.reverseDelimited (משפט, ''); }

6. מסקנה

במדריך זה בדקנו לראשונה דרכים שונות להפוך א חוּט בג'אווה. עברנו כמה דוגמאות באמצעות Java הליבה, כמו גם באמצעות ספריית צד ג 'פופולרית כמו Apache Commons.

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

כרגיל, כל דגימות הקוד המוצגות במדריך זה זמינות ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found