我需要将一组字符转换为字符串。问题是,我不知道如何在没有数组的情况下进行操作(禁止使用它们,因为我们尚未看到此主题)。
因此,该方法从要求用户输入单词(字符串类型)开始。在这种情况下,我以“ programma”一词为例。第一步就是对该单词的每个字符都加+4。在此示例中,必须从“ programma”->“ tvskveqqe”进行更改。
我将输入字符串“ programma”拆分成单独的字符,并在alfabet中添加了+4。之后,我确定是否使用字母“ wxyz”,将它们转换为w-> a,x-> b,y-> c和z-> d。
但是现在我被困在那部分,我需要将字符't''v''s''k''v''e''q''q''e'放入字符串“ tvskveqqe” ,并将其用作return语句。
谢谢!
public char coderen() {
String str; //input string
char c, e = ' ';
int a = 4, b, d;
System.out.println("Geef een woord in: ");
str = Input.readString(); //input
for (int i = 0; i < str.length(); i++) { // Splits up the string into separate chars
b = (int) str.charAt(i) + a; // +4 in ASCII
c = (char) b;
if (c >= 'e' && c <= 'z') {
e = c;
System.out.println(e);
}
else if (c >= '{' && c <= '~') { // converts 'w''x''y''z' into 'a''b''c''d'
d = (int)c - 26;
e = (char) d;
System.out.println(e);
}
else {
System.out.println("fout!");
}
}
return e;
}
您不应该使用数组有点奇怪,因为最后一个字符串总是表示为字符数组,因此您可能会争辩说,您采用的任何方法都是“使用数组” ...
话虽如此,您可以尝试不同的方法:
使用StringBuilder:
StringBuilder sb = new StringBuilder();
for .... { sb.appendChar(c); }
使用字符串串联:
String result = "";
for .... { result = result + c; }
使用字符串替换:(但是这不是基于索引,而是基于匹配的字符):
for (char c = 'a'; c <= 'z'; c++) {
result = result.Replace(c, c + 4);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句