【问题标题】:Move First Word to end of String Java将第一个单词移动到字符串 Java 的末尾
【发布时间】:2021-04-17 13:05:18
【问题描述】:

将关键字 flagstop、wb、nb、sb、eb 从名称的开头移动到名称的结尾 读取文件时的停止次数 例如,“WB HASTINGS ST FS HOLDOM AVE”变为“HASTINGS ST FS HOLDOM AVE WB”。

到目前为止,我已经获得了要在文件中读取的代码,如下所示,但我不确定如何根据上面显示的条件将数组中此字符串的关键字移动到字符串末尾。 如果它是上述任何邮政编码,我需要能够在 stop[2] 中移动第一个单词。 JAVA中有没有办法做到这一点?我想我需要单独创建一个函数(moveFirstToLast)并主要调用它,但我对此有困难。 '''

    String line = "";

    try {
        @SuppressWarnings("resource")
        BufferedReader x = new BufferedReader(new FileReader("stops.txt"));
        while((line = x.readLine()) != null)
        {

            String[] stops = line.split(",");
            System.out.println("Stop name:" + stops[2]);
    
        }
    }

'''

【问题讨论】:

  • 根据需要的复杂程度,您可能想看看 java RegEx。这可以让你挑选出字符串中的特定模式并将它们移动到任何你喜欢的地方。

标签: java string filereader


【解决方案1】:

使用正则表达式替换:

String input = "WB HASTINGS ST FS HOLDOM AVE";
String output = input.replaceAll("(\\S+) (.*)$", "$2 $1");
System.out.println(output);  // HASTINGS ST FS HOLDOM AVE WB

【讨论】:

    【解决方案2】:

    您可以使用String#split() 将第一个单词与字符串的其余部分分开。

    public moveFirstToLast(String stopName){
      String [] temp = stopName.split(" ", 2);
      return temp[1] + " " + temp[0];
    }
    

    【讨论】:

      【解决方案3】:
      import java.io.BufferedReader;
      import java.io.FileNotFoundException;
      import java.io.FileReader;
      import java.io.IOException;
      
      public class Sample_Two {
          public static void main(String[] args) {
              String line = "";
      
              try {
                  @SuppressWarnings("resource")
                  BufferedReader x = new BufferedReader(new FileReader("stops.txt"));
                  while ((line = x.readLine()) != null) {
                      System.out.println("Actual line===>" + line);
                      var arr = line.split("\\s");
                      if (arr != null && arr.length > 0) {
                          System.out.println("Updated line===>" + line.substring(line.indexOf(" ")) +" "+ arr[0]);
                      }
                  }
              } catch (FileNotFoundException e) {
                  e.printStackTrace();
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
      }
      

      你可以试试上面的代码。 为什么要用逗号分隔","

      You need to split through space.

      这会对你有所帮助。

      【讨论】:

        猜你喜欢
        • 2017-04-12
        • 1970-01-01
        • 1970-01-01
        • 2019-08-25
        • 2020-11-04
        • 1970-01-01
        • 2015-09-21
        • 1970-01-01
        • 2021-10-04
        相关资源
        最近更新 更多