gpt4 book ai didi

java - 反转字符串输入的第n个单词

转载 作者:行者123 更新时间:2023-12-02 02:15:14 26 4
gpt4 key购买 nike

这是我在堆栈溢出中的第一个问题,所以如果我违反了规则,请原谅我。

我想将用户输入作为字符串并反转字符串的每个第 n 个单词。 n 值也由用户输入。如果用户输入无效值,程序应相应地响应用户。到目前为止,我能够接受字符串输入并反转整个字符串。我需要帮助将第 n 个值作为输入并用第 n 个值反转字符串。并且该程序应该在不使用“String.reverse”或任何其他字符串函数的情况下运行。希望我详细阐述了问题的各个方面。谢谢:)

示例 I/O 应如下所示:

用户输入 =“Hello World!编程很有趣”
用户输入 n 值 = "2"
预期输出 =“Hello !dlroW 编程很有趣”
用户输入 n 值“2”,这意味着每隔一个单词应该反转。

以下是我到目前为止编写的程序:

 import java.util.*;

public class StringReverse {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);

String original, reverse="";

System.out.print("Please enter a sentence to reverse: ");

original= in.nextLine();

for (int i=original.length()-1; i>=0; i--) {
reverse += original.charAt(i);
}
System.out.println(reverse);
}
}

最佳答案

您可以尝试使用以下代码。

import java.util.Scanner;

public class March21th {

private static Scanner sc;

public static void main(String[] args) {

sc = new Scanner(System.in);
System.out.print("Please enter a sentence to reverse: ");
String str = sc.nextLine();
System.out.print("Please enter nth value: ");
int n = sc.nextInt();

String[] strArr = str.split(" ");
int len = strArr.length;

String str2 = strArr[n-1];
//System.out.println("str2: "+str2);
String strrev2 = strArr[len-n];
//System.out.println("strrev2: "+strrev2);

char temp;
char[] str2CharArr = str2.toCharArray();
char[] strrev2CharArr = strrev2.toCharArray();
int str2CharArrLen = str2CharArr.length;
int strrev2CharArrLen = strrev2CharArr.length;
//System.out.println("str2CharArrLen: "+str2CharArrLen);
//System.out.println("strrev2CharArrLen: "+strrev2CharArrLen);

for(int i=0,j=str2CharArrLen-1;i<str2CharArrLen/2;i++,j--) {
temp = str2CharArr[i];
str2CharArr[i] = str2CharArr[j];
str2CharArr[j] = temp;
}
String str2CharArrRev = String.valueOf(str2CharArr);
//System.out.println("str2CharArr after reverse: "+str2CharArrRev);

for(int i=0,j=strrev2CharArrLen-1;i<strrev2CharArrLen/2;i++,j--) {
temp = strrev2CharArr[i];
strrev2CharArr[i] = strrev2CharArr[j];
strrev2CharArr[j] = temp;
}
String strrev2CharArrRev = String.valueOf(strrev2CharArr);
//System.out.println("strrev2CharArr after reverse: "+strrev2CharArrRev);

strArr[n-1] = str2CharArrRev;
strArr[len-n] = strrev2CharArrRev;
//System.out.println("strArr[n-1]: "+strArr[n-1]);
//System.out.println("strArr[len-n]: "+strArr[len-n]);

String revStr = "";
for(int i=0; i<len;i++) {
revStr += strArr[i]+" ";
}
System.out.println(revStr);
}
}

输入:

String str = "Hello World! Programming is fun";

输出:

Hello !dlroW Programming si fun 

如果您不想使用 split() 函数,请使用帮助表格 this page

关于java - 反转字符串输入的第n个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49387079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com