作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
private static String shift(String p, int shift){
String s = "";
int len = p.length();
for(int x = 0; x < len; x++){
char c = (char)(p.charAt(x) + shift);
if (c == ' '){ // this right here isn't working
s += " ";
} else if (c > 'z'){
s += (char)(p.charAt(x) - (26-shift));
}
else {
s += (char)(p.charAt(x) + shift);
}
}
return s;
}
示例输出:qer$hyhi(“$”曾经是一个空格)。为什么这个空间不只是像它应该的那样保留一个空间呢?相反,它仍然遵循转换过程。
最佳答案
问题在于您正在将已经移位的字符与空格进行比较。
有多种方法可以修复此错误,其中之一如下(修复其他一些小问题):
private static String shift(String p, int shift){
StringBuilder s = new StringBuilder(); //better using a mutable object than creating a new string in each iteration
int len = p.length();
for(int x = 0; x < len; x++){
char c = p.charAt(x); //no need for casting
if (c != ' '){ // this should work now
c += shift;
if (c > 'z'){ //we assume c is in the 'a-z' range, ignoring 'A-Z'
c -= 'z';
}
}
s.append(c);
}
return s.toString();
}
关于java - 为什么这个剖腹产轮类不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42463932/
我是一名优秀的程序员,十分优秀!