增加多个字母

时间:2013-11-09 02:50:17

标签: java for-loop

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

2 个答案:

答案 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);
}