המרת מחרוזת לזרם תווים

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

ג'אווה 8 הציגה את זרם API, עם פעולות דמויות פונקציונליות לעיבוד רצפים. אם אתה רוצה לקרוא עוד על זה, עיין במאמר זה.

במאמר מהיר זה, נראה כיצד להמיר a חוּט אל א זרם של דמויות בודדות.

2. המרה באמצעות תווים ()

ה חוּט ל- API יש שיטה חדשה - תווים () בעזרתו נוכל להשיג מופע של סלקצץ מ חוּט לְהִתְנַגֵד. ממשק API פשוט זה מחזיר מופע של Intזרם מהקלט חוּט.

פשוט שים, IntStream מכיל ייצוג שלם של הדמויות מה- חוּט לְהִתְנַגֵד:

String testString = "מחרוזת"; IntStream intStream = testString.chars ();

אפשר לעבוד עם הייצוג השלם של הדמויות מבלי להמיר אותן לתמונות שלהם אופי שווה ערך. זה יכול להוביל לכמה רווחי ביצועים קלים, מכיוון שלא יהיה צורך לתייג כל מספר שלם ל- a אופי לְהִתְנַגֵד.

עם זאת, אם אנו רוצים להציג את הדמויות לקריאה, עלינו להמיר את המספרים השלמים לידידותיים לאדם אופי טופס:

זרם characterStream = testString.chars () .mapToObj (c -> (char) c);

3. המרה באמצעות codePoints ()

לחלופין, אנו יכולים להשתמש ב- codePoints () שיטה להשיג מופע של IntStream מ חוּט. היתרון בשימוש ב- API זה הוא שניתן לטפל ביעילות בתווים משלימים של Unicode.

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

IntStream intStream1 = testString.codePoints ();

עלינו למפות את המוחזר IntStream ל זרם כדי להציג אותו למשתמשים:

זרם characterStream2 = testString.codePoints (). MapToObj (c -> (char) c); 

4. הסבה לא זרם של דמות יחידה מיתרים

עד כה הצלחנו להשיג זרם של דמויות; מה אם אנחנו רוצים א זרם של דמות יחידה חוּטבמקום זאת?

בדיוק כפי שצוין קודם במאמר, נשתמש ב- codePoints () אוֹ תווים () שיטות להשיג מופע של IntStream שנוכל כעת למפות אליהם זרם.

תהליך המיפוי כולל תחילה המרה של ערכי המספרים השווים לשווי התווים שלהם.

אז נוכל להשתמש String.valueOf () אוֹ Character.toString () להמיר את הדמויות ל- חוּט לְהִתְנַגֵד:

זרם stringStream = testString.codePoints () .mapToObj (c -> String.valueOf ((char) c));

5. מסקנה

במדריך מהיר זה אנו לומדים להשיג זרם של אופי מ חוּט התנגד על ידי שיחות codePoints () אוֹ תווים () שיטות.

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

כמו תמיד, ניתן למצוא קטעי קוד ב- GitHub.


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