实际上我是java的初学者
我只是想知道如何打印一个同时显示带字母单词的程序
例如
我爱= 1 L0v3
冬天来了= W1nt3r 1s c0m1ng
这是我必须改变的(A = 4,E = 3,I = 1,O = 0,)
import java.util.scaneer;
public class question2 {
public static void main(String[]args)
{
Scaneer keyb = new Scanner(System.in);
System.out.println("Enter a string :");
int
String letter = A = 4, E = 3, I = 1, O = 0;
答案 0 :(得分:1)
方法String.replaceAll(String regex,String replacement)完全符合您的要求。
使用示例:
String word = "Winter";
word = word.replaceAll("i","1");
System.out.println(word); //Outputs 'W1nter'.
请记住,这是区分大小写的(因此替换a不会替换A)。
通过使用更好的正则表达式和缓存正则表达式可以提高效率,但我不会深入研究,因为你是初学者。随意google“java cache regex”。
答案 1 :(得分:1)
这将替换所有字符,忽略大写和小写。 (?i)
是不区分大小写的正则表达式。
String convertMe = "winter is coming";
convertMe = convertMe.replaceAll("(?i)a", "4")
.replaceAll("(?i)e", "3")
.replaceAll("(?i)i", "1")
.replaceAll("(?i)o", "0");
System.out.println(convertMe); //Prints: w1nt3r 1s c0m1ng
答案 2 :(得分:1)
有些用户建议使用String#replaceAll()
的解决方案。它可以工作,但你将每个字符迭代一次String来替换。
我建议你循环使用数组(使用String.toCharArray()
)并使用StringBuilder
构建一个新的字符串。
Map<Character, Character> map = new HashMap<Character, Character>(); // <-- Store the mapping into a map;
map.put('3','e');
map.put('4','a');
...
//Then, create a StringBuilder. It allows you to build a String...
StringBuilder sb = new StringBuilder();
//Then loop on your String :
for(char c : yourString.toCharArray()) {
if(map.containsKey(c)) {
sb.append(map.get(c));
} else {
sb.append(c);
}
}
System.out.println("the result is "+sb.toString());
答案 3 :(得分:0)
您应该将替换编码为字符,而不是整数,因为您将在字符串中替换它们。举个例子:
System.out.println("Hello".replace('e', '3')); // Will print "H3llo"
注意'3'
是一个char,而不是int。然后,您将对要替换的所有值执行此操作。
答案 4 :(得分:0)
对于 Java 8 或更高版本:
import java.util.Map;
import java.util.HashMap;
class Main {
public static void main(String[] args) {
Map<Character, Character> map = new HashMap<>() {{
put('A', '4');
put('E', '3');
put('I', '1');
put('O', '0');
}};
String original = "WINTER IS COMING";
String replaced = map.entrySet().stream().reduce(original, (acc, e) -> acc.replace(e.getKey(), e.getValue()), (s1, s2) -> s1 + s2);
System.out.println(replaced); // W1NT3R 1S C0M1NG
}
}