所以我尝试获取用户输入的单词的第一个字母并将其添加到单词的末尾(这将是一个 key ),直到消息完成
例如:
密码关键字 - 单词
留言 - 请帮忙
key 将转换为 ascii 数字除以 13,因此 w,o,r,d 将转换为 119,111,114,100,然后转换为 9,9,9,8
所以,我的问题是如何将我的代码转换为能够获取用户输入的 key 的第一个字母并将其添加到末尾直到消息结束的代码。
所以假设 key 是单词,消息是“请帮助”消息有 11 个字符,因此 key 应该将第一个字母放在后面十次
例如:word、ordw、rdow、dwor、word、ordw 等。
import java.util.Scanner;
public class swap {
public static void main(String [] args) {
System.out.println("Enter the word you want to flip");
Scanner sc = new Scanner(System.in);
String input = sc.nextLine(); //get input from user
for (;;) {
char firstLetter = input.charAt(0); //get the first letter
input = input.substring(1); //remove the first letter from the input string
input = input + firstLetter; //add first letter to end of input string
System.out.println("the word you entered flipped is " + input);
break;
}
}
}
最佳答案
您的要求很奇怪,因为将单词的每个字母的第一个字母发送到单词的末尾将会给出初始单词作为最终结果。
如果您想要的只是反转单词,那么您可以使用 StringBuilder
并调用 reverse
方法:
StringBuilder hello = new StringBuilder("hello");
hello.reverse();
在此示例中,hello 等于olleh。如果您不想使用 StringBuilder 并且需要编写算法,因为它是家庭作业或 w/e,那么请查看此线程:
Reverse String Word by Word in Java
编辑:要回答您的评论,请参阅以下示例,说明如何使用 10 个字符进行回答。
StringBuilder foo = new StringBuilder("somerandom(actuallynotreallyrandom)characters");
for(int i = 0; i < 10; i++)
{
foo.append(foo.charAt(0));
foo.deleteCharAt(0);
}
关于java - java中取用户输入的单词的第一个字母并重复添加到末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28659610/