初学者,编了一个Java程序,不知道怎么错了,请各位帮忙
发布网友
发布时间:2022-06-02 16:59
我来回答
共5个回答
热心网友
时间:2023-11-21 03:48
“.",“?”,“(”,“)” 等是特殊字符需要转义。如:rpl=rpl.replaceAll("?", "··--·· ");改为rpl=rpl.replaceAll(" //?", "··--·· ")
热心网友
时间:2023-11-21 03:48
import java.util.Scanner;
public class Morse {
public static void main(String[] args) {
System.out.print("请输入需要转换的字符串:");
Scanner input=new Scanner(System.in);
String str=input.nextLine();
String rpl=str.replaceAll(" ", " ");
rpl=rpl.replaceAll("-", "-····- ");
rpl=rpl.replaceAll(".", "·-·-·- ");
rpl=rpl.replaceAll(":", "---··· ");
rpl=rpl.replaceAll(",", "--··-- ");
rpl=rpl.replaceAll(";", "-·-·-· ");
// rpl=rpl.replaceAll("?", "··--·· ");
rpl=rpl.replaceAll("=", "-···- ");
rpl=rpl.replaceAll("'", "·----· ");
rpl=rpl.replaceAll("/", "-··-· ");
rpl=rpl.replaceAll("!", "-·-·-- ");
rpl=rpl.replaceAll("_", "··--·- ");
rpl=rpl.replaceAll("\"", "·-··-· ");
//rpl=rpl.replaceAll("(", "-·--· ");
//rpl=rpl.replaceAll(")", "-·--·- ");
rpl=rpl.replaceAll("$", "···-··- ");
rpl=rpl.replaceAll("&", "···· ");
rpl=rpl.replaceAll("@", "·--·-· ");
rpl=rpl.replaceAll("0", "----- ");
rpl=rpl.replaceAll("1", "·---- ");
rpl=rpl.replaceAll("2", "··--- ");
rpl=rpl.replaceAll("3", "···-- ");
rpl=rpl.replaceAll("4", "····- ");
rpl=rpl.replaceAll("5", "····· ");
rpl=rpl.replaceAll("6", "-···· ");
rpl=rpl.replaceAll("7", "--··· ");
rpl=rpl.replaceAll("8", "---·· ");
rpl=rpl.replaceAll("9", "----· ");
rpl=rpl.replaceAll("a", "·- ");
rpl=rpl.replaceAll("b", "-··· ");
rpl=rpl.replaceAll("c", "-·-· ");
rpl=rpl.replaceAll("d", "-·· ");
rpl=rpl.replaceAll("e", "· ");
rpl=rpl.replaceAll("f", "··-· ");
rpl=rpl.replaceAll("g", "--· ");
rpl=rpl.replaceAll("h", "···· ");
rpl=rpl.replaceAll("i", "·· ");
rpl=rpl.replaceAll("j", "·--- ");
rpl=rpl.replaceAll("k", "-·- ");
rpl=rpl.replaceAll("l", "·-·· ");
rpl=rpl.replaceAll("m", "-- ");
rpl=rpl.replaceAll("n", "-· ");
rpl=rpl.replaceAll("o", "--- ");
rpl=rpl.replaceAll("p", "·--· ");
rpl=rpl.replaceAll("q", "--·- ");
rpl=rpl.replaceAll("r", "·-· ");
rpl=rpl.replaceAll("s", "··· ");
rpl=rpl.replaceAll("t", "- ");
rpl=rpl.replaceAll("u", "··- ");
rpl=rpl.replaceAll("v", "···- ");
rpl=rpl.replaceAll("w", "·-- ");
rpl=rpl.replaceAll("x", "-··-");
rpl=rpl.replaceAll("y", "-·--");
rpl=rpl.replaceAll("z", "--··");
System.out.println("转换后莫尔斯电码为:"+rpl);
}
}
修改过的源码
因为String 的源码replaceAll会对?()当成特殊字符处理。你需要进行转译了才允许被转换
但括号是没办法的。前面加一个/就可以了
热心网友
时间:2023-11-21 03:49
rpl=rpl.replaceAll("?", "··--·· ");
rpl=rpl.replaceAll("(", "-·--· ");
rpl=rpl.replaceAll(")", "-·--· ");
这三句注释掉之后,发现就没有问题了!!!!
热心网友
时间:2023-11-21 03:50
出现的问题是什么
热心网友
时间:2023-11-21 03:50
请把报的错发上来 粗步估计是包的引入有问题