java - java中取用户输入的单词的第一个字母并重复添加到末尾

标签 java

所以我尝试获取用户输入的单词的第一个字母并将其添加到单词的末尾(这将是一个 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/

相关文章:

JAVA - GPS 接收器在控制台中发送奇怪/编码的帧

java - 将MatOfInt转换为MatofPoint

java - 新的 Gradle 依赖项未添加到项目和外部依赖项 (VSCode)

java - 在 tomcat 中使用 j_security_check 自动登录

java - 在调试中运行 Logback

java - 计算回文子串的个数

java - 如何通过mvn命令行传递testng.xml参数值

java - Spring 接线 - 未找到默认构造函数

java - 支柱|使用 Javascript 为逻辑标签赋值

java - 泛化类的 ArrayList 之间的搜索方法