我需要帮助更改一串字符(并不重要,我一直在使用您将在下面看到的具体设置)来设置数字。 "技术"是将每个字母替换为字母表中的位置。我们将为每个字母使用两位数字。例如,字母'a'是01,字母'b'是02,字母'c'是03,字母'z'是26.所以我们可以使用大写字母,我们用27开始'A', 'B'表示28,'C'表示29,依此类推。
对于数字,我们将每个数字转换为两个字母:它们代表的前两个字母。第一个字母大写,后跟小写字母。例如,8写出来是8。因此,8将被加密为“Ei”,1将被加密为“On”,2将被加密为“Tw”,3将被加密为“Th”,依此类推。请注意,“10”实际上是两位数,因此它将被加密为“1”和“0”:“OnZe”如果你来到一个非字母字符(空格,标点符号,数字等),只需打印它们因为没有加密。
我开始使用以下代码:
public class Try{
public static void main (String[] args){
System.out.println("hello");
String string = "Orange juice is great! I drank 83,214 cups of it yesterday.";
System.out.print(string); //to see the string is appropriately done
char exampleChar = 'a';
int charCastAsInt = (int) exampleChar;
System.out.print(charCastAsInt);
}
}
我不知道如何解析字符串,忽略特殊字符和空格,同时仍然在他们的位置打印它们并让每个数字打印我告诉它的每个值应该是什么。我应该使用for循环吗?然后从那里继续?
答案 0 :(得分:1)
我不会告诉你整个答案,因为这似乎是作业。但这里有一些提示:
"aString".charAt(i)
为您提供给定索引的字符"aString".length()
为您提供字符串现在使用一些loops和if-else-statements,你就完成了......
答案 1 :(得分:1)
类 字符串 有很多方法,我建议您查看 toCharArray() 。该方法返回 char array ,您可以通过它循环,将每个项目转换为 int 类型并打印结果。这可以这样写:
for (char c : "Some string".toCharArray()) System.out.print((int) c + " ");
输出: 83 111 109 101 32 115 116 114 105 110 103
答案 2 :(得分:1)
让我们开始:
48
由9
57
由a
97
由z
122
由A
65
由Z
90
由.toCharArray()
从这里我们可以使用String string = "Orange juice is great! I drank 83,214 cups of it yesterday.";
String[] numbers = {"Ze", "On", "Tw", "Th", "Fo", "Fi", "Si", "Se", "Ei", "Ni"};
String result = "";
for (char c : string.toCharArray()) {
if (c >= 48 && c <= 57) {// range [0-9] digits
result += numbers[c - 48];
} else if (c >= 97 & c <= 122) {// range [a-z] lower letters
result += String.format("%02d", (char) c - 96);
} else if (c >= 65 & c <= 90) {// range [A-Z] upper letters
result += c - 38;
}else {
result += c;
}
}
System.out.println(result);
遍历String并检查每个字符的范围:
411801140705 1021090305 0919 0718050120! 35 0418011411 EiTh,TwOnFo 03211619 1506 0920 250519200518040125.
<强>输出强>
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp("/WEB-INF/views/", ".jsp");
}