gpt4 book ai didi

Java - 如何将用户输入作为方法调用执行?

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

我希望能够在 IDE 的控制台中输入以下内容:

reverse("a b c d")

但目前我只能输入

a b c d 

我该如何实现这一目标?我尝试过使用 args[0] 但出现错误。

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String sentence = sc.nextLine();
reverse(sentence);

}
public static void reverse(String s){
String [] stringArray;
stringArray = s.split(" ");
int counter = stringArray.length;
for (String word : stringArray) {
counter -=1;
System.out.print(stringArray[counter]+" ");
}

}

最佳答案

要解决您的问题,您可以使用一些正则表达式来获取 reverse("get this") 中的值:

s = s.replaceAll("reverse\\(\"(.*?)\"\\)", "$1");

第二个而不是那个循环,你可以使用StringBuilder::reverse来反转你的字符串:

public static void reverse(String s) {
s = s.replaceAll("reverse\\(\"(.*?)\"\\)", "$1");
System.out.println(s);
System.out.println(new StringBuilder(s).reverse().toString());
}

输入

reverse("a b c d")

输出

d c b a
<小时/>

编辑

根据您的评论:

When I run the application. It will ask the user for an input. If the user enters: reverse("I am an apple") It will then output: apple an am I

在这种情况下,您必须检查方法的名称,因此如果字符串以名称 reverse 开头,则调用反向方法,例如:

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String sentence = sc.nextLine();

if (sentence.startsWith("reverse")) {
reverse(sentence);
}
}

public static void reverse(String s) {
s = s.replaceAll("reverse\\(\"(.*?)\"\\)", "$1");
List<String> stringArray = Arrays.asList(s.split("\\s+"));
Collections.reverse(stringArray);
System.out.println(stringArray);
}

关于Java - 如何将用户输入作为方法调用执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46830524/

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