سلسلة إلى مصفوفة بايت، مصفوفة بايت إلى سلسلة في جافا

اليوم سنتعلم كيفية تحويل السلسلة إلى مصفوفة بايت في جافا. سنتعلم أيضًا كيفية تحويل مصفوفة البايت إلى سلسلة في جافا.

السلسلة إلى مصفوفة بايت

يمكننا استخدام طريقة getBytes() في فئة String لتشفير السلسلة إلى تسلسل من البايتات باستخدام ترميز الشريحة الافتراضي للمنصة. هذه الطريقة متعددة الحمولة ويمكننا أيضًا تمرير Charset كوسيط. فيما يلي برنامج بسيط يوضح كيفية تحويل السلسلة إلى مصفوفة بايت في جافا.

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[] byteArr = str.getBytes("UTF-8");

ومع ذلك، إذا قدمنا اسم Charset، فعلينا إما التقاط UnsupportedEncodingException استثناء أو رميه. النهج الأفضل هو استخدام فئة StandardCharsets التي تم إدخالها في جافا 1.7 كما هو موضح أدناه.

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

هذه كل الطرق المختلفة لتحويل السلسلة إلى مصفوفة بايت في جافا.

مصفوفة البايت في سلسلة نصية في جافا

لنلقِ نظرة على برنامج بسيط يُظهر كيفية تحويل مصفوفة البايت إلى سلسلة نصية في جافا.

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);
	}
}

الصورة أدناه تُظهر الإخراج الناتج عن البرنامج أعلاه. هل لاحظت أنني أقوم بتوفير حرف أثناء إنشاء مصفوفة البايت؟ يعمل ذلك بسبب التعبئة التلقائية ويتم تحويل الحرف ‘P’ إلى 80 في مصفوفة البايت. ولهذا السبب، يكون الإخراج هو نفسه لتحويل مصفوفة البايت إلى سلسلة نصية. السلسلة لديها أيضًا بناء حيث يمكننا توفير مصفوفة البايت ومجموعة الأحرف كوسيط. لذا يمكن استخدام الكود أدناه أيضًا لتحويل مصفوفة البايت إلى سلسلة نصية في جافا.

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

تحتوي فئة السلسلة أيضًا على طريقة لتحويل مجموعة فرعية من مصفوفة البايت إلى سلسلة نصية.

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

الكود أعلاه مثالي تمامًا وسيكون قيمة ‘str’ هي ‘PAN’. هذا كل شيء عن تحويل مصفوفة البايت إلى سلسلة نصية في جافا.

يمكنك التحقق من المزيد من أمثلة المصفوفات من مستودع GitHub الخاص بنا.

المرجع: وثائق واجهة برمجة التطبيقات لطريقة getBytes

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