当前位置: 首页 > 知识库问答 >
问题:

如何根据给定的输入数字反转字符串的每个单词?

龙高超
2023-03-14

以下是程序必须遵循的规则:

  1. 字符串中的每个单词都必须被拆分n个字母,并从一开始就反转它们
  2. 只有长度等于或大于n

例如,如果string=“吸引力定律”并输入n=3。这里,的长度小于n,因此不能颠倒,但定律和引力的长度大于或等于3,因此必须颠倒为

法律为wal吸引力为ttacaroitn

最终输出:ttacaroitn的wal

在我给定的代码中,我只能反转字符串,但不能根据输入数字反转单词。不知道。

    Scanner sc = new Scanner(System.in);
    String str = sc.nextLine();
    System.out.println("Enter String: "+str);
    
    Scanner sc1 = new Scanner(System.in);
    int Digit = sc.nextInt();
    
    int count = str.split("\\s+").length;
    System.out.println("No.of words: "+count);
    System.out.println("Given string: "+str);
    if(Digit<=count) {
        String s[] = str.split(" ");
        String ans = "";
        for (String part : str.split(" ")) {
            System.out.print(new StringBuilder(part).reverse().toString());
            System.out.print(" ");
        }
    }   
    else {
        System.out.println("Your input Digit is Greater than count of words.");
    }

共有2个答案

邓驰
2023-03-14
匿名用户

方法逆转SubString将在每个n字符之后拆分单词。然后将其反转。

public static void main(String[] args){
  String line = "law of attraction";
  int n = 3;
  String[] words = line.split(" ");
  for(String word: words){
    if(word.length()>=n){
      System.out.print(reverseSubString(word, n)+" ");
    } else {
      System.out.print(word + " ");
    }
  }
}

public static String reverseSubString(String s, int n) {
  String ans = "";
  String[] substrings = s.split("(?<=\\G.{"+n+"})");
  for(String substring : substrings){
    if(substring.length()==n)
       ans += new StringBuffer(substring).reverse().toString();
    else
       ans += substring;
  }
  return ans;
}

输出

ttacaroitn的墙

柯宜年
2023-03-14

您正在使用if(数字

   if(Digit<=count) {
        String s[] = str.split(" ");
        String ans = "";
        for (String part : str.split(" ")) {
            System.out.print(new StringBuilder(part).reverse().toString());
            System.out.print(" ");
        }
    }

您应该检查拆分内部循环后每个单词的长度,并在大于或等于n时进行相反的操作。

    String s[] = str.split(" ");
    for (String part : s) {
        // here to check
        if(part.size() >= Digit){
            part = new StringBuilder(part).reverse().toString();
        }
        System.out.print(part);
        System.out.print(" ");
    }

 类似资料:
  • 问题内容: 我的代码中有一个小问题。我正在尝试反转单词和字符串的字符。例如,“狗跑了”将变成“ ehT神纳尔” 该代码几乎可以正常工作。它只是不添加空格。你会怎么做? 问题答案: 您走在正确的轨道上。主要问题是一个空字符串,而不是一个空格(即使您解决了这个问题,您可能也不想在最后一个单词之后留一个空格)。 这是您可以更简洁地执行此操作的方法:

  • 问题内容: 我要扭转各个人在Java中的String(不是整个字符串,只是每个人的字)的字。 示例:如果输入String为“ Hello World”,则输出应为“ olleH dlroW”。 问题答案: 这应该可以解决问题。这将遍历源字符串中的每个单词,使用StringBuilder的内置方法将其反转,然后输出反转的单词。 输出: 注意:评论者正确地指出了一些我认为应该在此处提及的内容。本示例将

  • 问题内容: 我需要反转用户输入的字符串。 我需要用最简单的方法完成它。我正在尝试做reverseOrder(UserInput),但是没有用。 例如,用户输入abc,我只是获取字符串并打印出cba 问题答案: 用于按正常顺序反向排序。

  • 问题内容: 是否可以在Swift中将字符串的每个单词放入数组中? 例如: 至: 谢谢 :) 问题答案: 编辑/更新: Xcode 10.2•Swift 5或更高版本 我们可以使用集合拆分方法进行扩展 设置为true并通过闭包作为谓词。我们还可以利用new 属性来分割字符串。

  • 问题内容: 目的: 在Golang中的字符串中每x个字符插入一个字符 输入: 预期产量: 尝试次数 尝试一次 结果是: 尝试两次 计算字符数 对于循环 如果X = 5,则插入一个 尝试三 扫描结合加入 问题 目前尝试两次和三次不包含代码段的原因是,我仍在思考应该使用哪种方法在Golang中的字符串中每X个字符插入一个字符。 问题答案: https://play.golang.org/p/HEGbe

  • 问题内容: 我有一个字符串中的单词列表: 我想扭转它以获得 我该怎么做? 问题答案: 您可以使用以下方法: