我遇到了这段代码的问题,它不断重复同样的事情27次而不是每次都进行转换。因此,如果用户输入“ASDFG”,则每次都重复“BTEGH”
import java.io.* ;
import java.util.Scanner;
public class what
{
public static void main (String[] args)
{
Scanner hey = new Scanner(System.in);
System.out.print("Enter a word: ");
String w = hey.nextLine();
System.out.println(w);
int j=0;
while(j<28){
for(int i=0; i<w.length(); i++)
{
char ch = w.charAt(i);
ch++;
System.out.print(ch);
}
j++;
System.out.println();
}
}}
答案 0 :(得分:0)
while循环导致代码重复27次。如果您只想转换用户输入的字符串一次,请删除while循环。
Scanner hey = new Scanner(System.in);
System.out.print("Enter a word: ");
String w = hey.nextLine();
System.out.println(w);
for (int i = 0; i < w.length(); i++) {
char ch = w.charAt(i) + 1;
System.out.print(ch);
}
答案 1 :(得分:0)
您实际上从未真正更改String
中的字符。如果您想要实际更改String
中的字符以及打印增加的字符,那么您可以使用StringBuilder中的setCharAt()
,即:
StringBuilder sb = new StringBuilder(w);
然后在你的循环中,你可以这样做:
for(int i=0; i < sb.length(); i++)
{
char ch = sb.charAt(i);
sb.setCharAt(i) = ++ch;
System.out.print(ch);
}