//method I'm trying to call
static String sentenceReversal(String input) {
        
            int x = input.indexOf(" ");
            
            //Base Case
            if(x == -1)
              return input;
              
             //Recursive Method
            return sentenceReversal(input.substring(x+1)) +" "+ input.substring(0, x);
case 6:
            System.out.println("Enter a string to reverse:");
            String input6 = scan.next();
            System.out.println(sentenceReversal(input6));
            break;

将该方法调用为sentenceReversal("Hello World")

返回World Hello,但用input6调用它会返回Hello,其他什么都不是,有什么 idea 吗?

我也专门为这种情况做了一台 scanner ,因为我之前得到的是InputMismatchException

同样,当在切换后输入数字后,字符串的下一部分会出现.

推荐答案

一百零二 用nextLine()法代替next()法.

一百零二 next()法用于输入仅包含一个单词的字符串,而nextLine()方法用于输入包含多个单词的字符串.这就是代码返回‘Hello’而不是‘World Hello’的原因,因为它只接受‘Hello’作为输入,而忽略了‘World’

Your updated code:

case 6:
        System.out.println("Enter a string to reverse:");
        String input6 = scan.nextLine();
        System.out.println(sentenceReversal(input6));
        break;

在下面的页面中引用更多Scanner类的方法: https://docs.oracle.com/javase%2F7%2Fdocs%2Fapi%2F%2F/java/util/Scanner.html#method_summary

Java相关问答推荐

Java WireMock定义存根在Cucumber并行执行的多线程测试中失败

如何使用jooq generator将表名和列名映射为人类可读的?

如何在访问完所有文件后加入所有线程?

Intellij显示项目语言级别最高为12,尽管有java版本17 SDK

替换com. sun. jndi. dns. DnsContextFactory Wildfly23 JDK 17

嵌入式ActiveMQ Artemis Web控制台加载错误

有没有办法让扩展变得多态?

JNI:将代码打包成自包含的二进制文件

错误:未找到扩展元素在JBossEAP 7.2中安装FUSE时出错

Java创建带有扩展通配符的抽象处理器

Spring动态反序列化JSON可以是列表,也可以只是一个对象

Android Studio模拟器没有互联网

为什么这种递归会有这样的行为?

在应用getCellFormula()时,Excel引用中的文件名始终为";[1]";使用Apache POI()

在Java泛型中使用通配符时,如何推断类型

如何使用Java ZoneID的区域设置?

我们可以在方法中声明接口吗?

如何从指定某些字段的父对象创建子对象

java 11上出现DateTimeParseException,但java 8上没有

对于 Hangman 游戏,索引 0 超出长度 0 的范围