تمرینات درس برنامه نویسی پیشرفته جاوا
برنامه ای بنویسید که کد مورس را برای جمله ای که به نقطه ختم می شود تولید کند. این جمله فقط حاوی حروف a تا z و فضای خالی است. پس از خواندن کد مورس در آرایه ای از رشته ها برنامه باید هر کلمه رشته را خوانده کد مورس معادل آن را تولید و چاپ کند.
حل مساله :
package solution6_5;
import java.util.*;
public class Solution6_5 {
public static void main(String[] args) {
char[] english = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
',', '.', '?'};
String[] morse = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..",
".---", "-.-", ".-..", "--", "-.", "---", ".---.", "--.-", ".-.",
"...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", ".----",
"..---", "...--", "....-", ".....", "-....", "--...", "---..", "----.",
"-----", "--..--", ".-.-.-", "..--.."};
Scanner in = new Scanner(System.in);
System.out.print("Please enter Text : ");
String userInput= in.next().toLowerCase();
StringBuffer st = new StringBuffer(userInput);
while (userInput.lastIndexOf('.')==-1){
userInput = in.next();
st.append(userInput);
}
char[] chars = st.toString().toCharArray();
String str = "";
for (int i = 0; i < chars.length; i++) {
for (int j = 0; j < english.length; j++) {
if (english[j] == chars[i]) {
str = str + morse[j] + " ";
}
}
}
System.out.print("Result : ");
System.out.println(str);
}
}