Java 如何将字母与数字交换到l33t
我想为课堂制作一个英语到leet的转换器 我不知道如何把一个字母变成一个数字 例如Java 如何将字母与数字交换到l33t,java,Java,我想为课堂制作一个英语到leet的转换器 我不知道如何把一个字母变成一个数字 例如cow=>c0w 无法使用system.out.println将'o'转换为'0' 到目前为止我有 public static boolean detect(String mike) { int num= Integer.parseInt("0"); if ("o" == "0" ){ return num; } } public static void main (String[] arg
cow
=>c0w
无法使用system.out.println
将'o'
转换为'0'
到目前为止我有
public static boolean detect(String mike) {
int num= Integer.parseInt("0");
if ("o" == "0" ){
return num;
}
}
public static void main (String[] arg) {
System.out.println(detect( "cow life "));
}
使用字符串
一定要对大写字母和小写字母都这样做
下面是一个示例函数
public static ConvertToLeet(string s)
{
return s
.replace(o, 0)
.replace(O, 0)
.replace(e, 3)
.replace(E, 3)
.replace(a, 4)
.replace(A, 4);
}
始终使用.equals()比较字符串
如果你只是想把它当作一个字符串来使用,那么把它解析成一个整数也没有多大意义。与其尝试解析成一个整数,我认为最好的解决方案是把字符串中的所有字符都当作字符来处理。创建某种类型的查找表(两个字符串、并行数组或哈希映射)
然后,一个字符接一个字符地查找查找表,查看原始字符是否有替换项,如果有,则替换它。或者,只需遍历所有映射项,然后替换()字符串中的字符及其映射替换。分解为字符数组,然后在需要时通过字符数组进行迭代更改字符
public class Leetify {
public static void main(String args[]){
System.out.println(leetify("thE qUick Brown fox jumped Over the laZy CaT"));
}
public static String leetify(String s){
//first make lower case then convert to char array
char temp[] = s.toLowerCase().toCharArray();
for(int i = 0; i < temp.length; i++){
switch(temp[i]){
//put in whatever letters you want to change here
case 'e':
temp[i] = '3';
break;
case 'o':
temp[i] = '0';
break;
case 'l':
temp[i] = '1';
break;
case 't':
temp[i] = '7';
break;
case 'a':
temp[i] = '4';
break;
}
}
return new String(temp);
}
}
公共类Leetify{
公共静态void main(字符串参数[]){
System.out.println(leetify(“敏捷的棕色狐狸跳过了懒猫”);
}
公共静态字符串leetify(字符串s){
//首先使小写,然后转换为字符数组
char temp[]=s.toLowerCase().toCharArray();
对于(int i=0;i
输出:7h3 quick br0wn f0x jump3d 0v3r 7h3 14zy c47if(“o”=“0”):这不会总是错误的吗?比如:if(1==2)对于这样一个简单的问题来说太复杂了;不需要引入复杂的数据结构。我喜欢你认为数组是一个复杂的数据结构:-@Isaac HashMap;map.put('o','0');,等等,这并不复杂。为什么你需要一个散列图??为什么需要对密钥进行哈希运算??哈希函数需要时间……碰撞检测需要时间……是的,我会考虑哈希映射的任何实现,一个复杂的数据结构…在哈希映射中多一点,然后只是一个数组411y0u H4v3 70 D0是100p 7H0UGH CH4RS 0F S7Lo00C3第四R3P14C3 0N3S 7H47 4R3 N3C33 S4RY,为什么w0u1d y0u w4n7 70 b3 H4SH 47 34通道s73p 0f 7h3 w4y?在中国,如果开关为s7473m3n7,则开关为s7473m3n7,而开关为s7473m3n7,则开关为s7473m3n7,且开关为S7473M3N3,则开关为S7473M3N3。开关为S74R3R3N3,开关为R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R4R,我没有h4v3 7his 1337 7r4ns1470r i m4d3,其中c4n 7r4ns1473 4ny s3n73nc3位于70 1337sp34k…pr377y us313ss bu7 wh473v3r。您只需使用String的toLowerCase()方法,就不必担心大小写替换方法调用。唯一的缺点是所有的i都是小写。
public class Leetify {
public static void main(String args[]){
System.out.println(leetify("thE qUick Brown fox jumped Over the laZy CaT"));
}
public static String leetify(String s){
//first make lower case then convert to char array
char temp[] = s.toLowerCase().toCharArray();
for(int i = 0; i < temp.length; i++){
switch(temp[i]){
//put in whatever letters you want to change here
case 'e':
temp[i] = '3';
break;
case 'o':
temp[i] = '0';
break;
case 'l':
temp[i] = '1';
break;
case 't':
temp[i] = '7';
break;
case 'a':
temp[i] = '4';
break;
}
}
return new String(temp);
}
}