You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用substring与Scanner实现Java单词反转?遇参数使用难题

问题描述

需要实现输入单词的反转(例如将java转为avaj),要求使用substring()方法和Scanner输入,但对substring()的用法不熟悉——比如使用word.substring(6,3)会因起始索引大于结束索引报错。目前已完成输入校验代码,卡在如何用substring()实现字符串反转。

现有代码:

import java.util.Scanner;

class Main {

  public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    String word, wordTwo;

    
    System.out.println("enter a word");

    while (true) {

      word = input.next();

      if(word.matches(".*[0-9].*")){

        System.out.println("Please enter a valid word!");

        continue;

      }

      break;

    }
    String a = word.substring();

    System.out.println(a);

    input.close();

  }

}
解决方案

先明确substring()的正确用法

  • substring(int beginIndex):从索引beginIndex(包含)开始截取到字符串末尾,返回新的子串
  • substring(int beginIndex, int endIndex):截取从beginIndex(包含)到endIndex(不包含)之间的字符,必须保证beginIndex <= endIndex,否则会抛出索引越界异常

用substring()实现字符串反转的思路

从原字符串的最后一个字符开始,逐个截取单个字符并拼接到结果字符串中,最终得到反转后的内容。

修改后的完整代码

import java.util.Scanner;

class Main {

  public static void main(String[] args) {

    Scanner input = new Scanner(System.in);
    String word;

    System.out.println("enter a word");

    // 输入校验:确保输入不含数字
    while (true) {
      word = input.next();
      if(word.matches(".*[0-9].*")){
        System.out.println("Please enter a valid word!");
        continue;
      }
      break;
    }

    // 实现字符串反转
    String reversedWord = "";
    int wordLength = word.length();
    // 从最后一个索引开始循环到0
    for (int i = wordLength - 1; i >= 0; i--) {
      // 截取当前索引到i+1的子串(即单个字符),拼接到结果中
      reversedWord += word.substring(i, i + 1);
    }

    // 输出反转后的单词
    System.out.println(reversedWord);
    input.close();
  }

}

代码说明

  1. 先通过循环完成输入校验,确保输入的单词不含数字
  2. 初始化空字符串reversedWord用于存储反转结果
  3. 获取原单词的长度wordLength,字符串索引从0开始,所以最后一个字符的索引是wordLength - 1
  4. 从最后一个索引倒序循环到0,每次用substring(i, i+1)截取单个字符(因为substring的结束索引不包含,所以i到i+1刚好是当前索引的字符)
  5. 将每次截取的字符拼接到reversedWord中,循环结束后得到反转后的字符串

内容的提问来源于stack exchange,提问作者Game Destroyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 19:57:21