البرمجة

تحويل سلسلة الأحرف والأرقام في جافا

لتحقيق هذا الهدف، يمكنك استخدام تعبيرات منتظمة لتحليل السلسلة المعطاة وتحويلها وفقًا للمطلوب. هناك عدة طرق لتحقيق ذلك في جافا، ويمكن استخدام Enum كما ذكرت أو استخدام وظائف المعالجة النصية القياسية في جافا لتحقيق هذا الغرض.

هذا مثال بسيط باستخدام Enum:

java
public class StringConverter { public enum NumberToWord { 0("zero"), 1("one"), 2("two"), 3("three"), 4("four"), 5("five"), 6("six"), 7("seven"), 8("eight"), 9("nine"); private final String word; NumberToWord(String word) { this.word = word; } public String getWord() { return word; } } public static void main(String[] args) { String input = "abc123"; StringBuilder output = new StringBuilder(); for (char c : input.toCharArray()) { if (Character.isDigit(c)) { output.append(NumberToWord.valueOf("valueOf" + c).getWord()); } else { output.append(c); } } System.out.println(output.toString()); } }

هذا المثال يستخدم Enum لتحديد كل رقم وما يقابله من كلمة، ثم يقوم بتحليل السلسلة المعطاة وتحويل الأرقام إلى كلمات وفقًا لل Enum المعرف مسبقًا.

يمكنك تطوير هذا المثال بإضافة المزيد من المطابقات للأحرف الأبجدية والأرقام الأخرى حسب الحاجة.

المزيد من المعلومات

لتحويل السلسلة المعطاة “abc123” إلى “012onetwothree”، يمكن استخدام تعبيرات منتظمة لفصل الأحرف والأرقام، ثم تحويل الأرقام إلى كلمات باستخدام Enum أو بطريقة أخرى. يمكن تحقيق ذلك بإنشاء دالة تقوم بتنفيذ هذه العملية بالشكل التالي:

java
import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringConverter { public static void main(String[] args) { String input = "abc123"; String output = convertString(input); System.out.println(output); } public static String convertString(String input) { StringBuilder output = new StringBuilder(); Pattern pattern = Pattern.compile("[a-zA-Z]+|\\d+"); Matcher matcher = pattern.matcher(input); while (matcher.find()) { String group = matcher.group(); if (Character.isLetter(group.charAt(0))) { output.append(group); } else { output.append(convertNumberToWord(group)); } } return output.toString(); } public static String convertNumberToWord(String number) { String[] words = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; int num = Integer.parseInt(number); return words[num]; } }

هذا الكود يستخدم تعبيرًا منتظمًا لفصل الأحرف والأرقام في السلسلة المعطاة. ثم يقوم بتحويل الأرقام إلى كلمات باستخدام دالة convertNumberToWord ويجمع الناتج النهائي في سلسلة جديدة تحتوي على السلسلة المطلوبة “012onetwothree”.

زر الذهاب إلى الأعلى