有一个赋值,我必须将字符串中的每个索引按用户设置的数量递增以生成新名称。
换句话说,:
键入您的名字: 海伦李 要递增的整数键: 1 新名称:gfmfo!mff
因此,将每个指数都放在" helen lee"增加1.
这就是问题所在。 Java将字符串中的每个索引视为一个字符。甚至是空白。 所以当我增加" * whitespace "到2,它将产生" @"。
但是
当我将空格增加5时,将发生错误。 (应该产生"%")。 有没有其他方法可以在不调用错误的情况下将空格增加5?
这是我的代码:
String alpha = " ";
int integer = 0;
System.out.println("Question 1: ");
Scanner alphaInput = new Scanner(System.in);
System.out.println("Please enter your name. ");
alpha = alphaInput.nextLine();
Scanner intInput = new Scanner(System.in);
System.out.println("How many cycles to cycle your name: ");
integer = intInput.nextInt();
int stringIndex = alpha.length();
char newName;
System.out.printf("Your new name is: ");
for(int i = 0; i < stringIndex; i++)
{
newName = (char) (alpha.charAt(i) + integer);
System.out.printf("" + newName);
};
答案 0 :(得分:0)
问题是你使用System.out.printf
。该方法将%
解释为特殊值,并期望更多数据。您应该使用System.out.print
(不带f)代替。有关详细信息,请参阅printf
的{{3}}。