0

我对这段代码有问题,它不断重复同样的事情 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();
}
}}
4

2 回答 2

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);
}
于 2013-11-09T02:54:16.400 回答
0

你从来没有真正改变你的String. 如果您String除了打印出递增的字符之外还想实际更改字符,那么您可以使用setCharAt()StringBuilder 即:

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);
}
于 2013-11-09T02:54:52.583 回答