מחרוזת למערך בתים, מערך בתים למחרוזת ב-Java

היום נלמד איך להמיר מחרוזת למערך בתים ב-Java. נלמד גם איך להמיר מערך בתים למחרוזת ב-Java.

מחרוזת למערך בתים

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

package com.journaldev.util;

import java.util.Arrays;

public class StringToByteArray {

	public static void main(String[] args) {
		String str = "PANKAJ";
		byte[] byteArr = str.getBytes();
		// הדפסת איברי ה-byte[]

		System.out.println("String to byte array: " + Arrays.toString(byteArr));
	}
}

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

byte[] byteArr = str.getBytes("UTF-8");

אך אם נספק את שם ה-Charset, אז נצטרך לתפוס את יוצאת ה-UnsupportedEncodingException חריג או לזרוק אותה. הדרך המומלצת היא להשתמש במחלקת StandardCharsets שנכנסה לשימוש ב-Java 1.7 כפי שמוצג למטה.

byte[] byteArr = str.getBytes(StandardCharsets.UTF_8);

זו הכל, זהו כל הדרכים השונים להמיר מחרוזת למערך בתים ב-Java.

מערך Byte של Java למחרוזת

בואו נסתכל על תוכנית פשוטה המציגה איך להמיר מערך byte למחרוזת ב-Java.

package com.journaldev.util;

public class ByteArrayToString {

	public static void main(String[] args) {
		byte[] byteArray = { 'P', 'A', 'N', 'K', 'A', 'J' };
		byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };

		String str = new String(byteArray);
		String str1 = new String(byteArray1);

		System.out.println(str);
		System.out.println(str1);
	}
}

התמונה למטה מציגה את הפלט שנוצר על ידי התוכנית לעיל. שמת לב שאני מספק תו במהלך יצירת מערך ה-Byte? זה עובד בגלל האוטובוקסינג והתו 'P' מתמרץ ל־80 במערך ה-Byte. זה למה הפלט זהה להמרת מערך ה-Byte למחרוזת. למחרוזת יש גם בנאי שבו ניתן לספק מערך Byte וקידוד (Charset) כארגומנט. לכן קטע הקוד למטה יכול גם לשמש להמרת מערך Byte למחרוזת ב-Java.

String str = new String(byteArray, StandardCharsets.UTF_8);

גם למחרוזת יש שיטה המאפשרת להמיר חלק מהמערך Byte למחרוזת.

byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };
String str = new String(byteArray1, 0, 3, StandardCharsets.UTF_8);

הקוד למעלה תקין לחלוטין וערך המחרוזת 'str' יהיה 'PAN'. זהו הכל בנוגע להמרת מערך Byte למחרוזת ב-Java.

ניתן לבדוק דוגמאות נוספות למערך מהקובץ שלנו ב-מאגר הקוד ב-GitHub.

התייחסות: מסמך ה-API של getBytes

Source:
https://www.digitalocean.com/community/tutorials/string-byte-array-java