【问题标题】:For loop to separate a string with spaces (Java)For循环用空格分隔字符串(Java)
【发布时间】:2012-04-19 18:28:51
【问题描述】:

有没有办法创建某种类型的 For 循环来用空格分隔字符串? 到目前为止,我可以显示一个字符串并找出它有多少个字符。

import java.util.Scanner;
import java.lang.String;

public class Word{
  public static void main(String args[])
  {
     Scanner scan = new Scanner(System.in);

     int b;

    String word;

    System.out.println ("Enter a word: ");
    word = scan.next();

    b = word.length();

    System.out.println (word);
    System.out.println (b);
  }
}

【问题讨论】:

  • 为什么需要这样做?即您需要了解原理,还是需要完成工作?
  • 您是否有要拆分的带有空格的字符串,或者您想通过插入空格来分隔字符串?
  • 通过插入空格来分隔字符串,对不起。
  • 你想在哪里插入空格?

标签: java string spaces


【解决方案1】:

作为Scanner 的替代方案,您可以执行以下操作:

String[] parts = line.split(" ");
for (String part : parts) {
    //do something interesting here
}

【讨论】:

    【解决方案2】:

    在String类中使用split()方法,像这样:

    String line = "a series of words";
    String[] words = line.split("\\s+");
    

    它将返回一个String[],其中包含line 中的各个单词,对于上面的示例,它将产生:

    {"a", "series", "of", "words"}
    

    【讨论】:

      【解决方案3】:

      您可以使用String.split 将句子拆分为单词数组......类似

      string[] words = word.split(" ");
      for (String s: words)
      {
          System.out.println(s);
          System.out.println("\n");
      }
      

      【讨论】:

      • 请注意,这不是 Java 循环语法。试试for (String s: words)
      • @LarsH - 谢谢。使用 C#,现在更正
      • 感谢您更正代码。但是,我刚刚阅读了 OP 的 cmets,说他或她想在字符串中 insert 空格。 ::耸肩::
      【解决方案4】:

      您是否尝试过查看 java API? 您可以使用许多不同的功能... 我的头顶分割会很好地工作,你甚至不必写一个循环

      http://docs.oracle.com/javase/6/docs/api/

      【讨论】:

      • 它必须是一个for循环,对不起
      • 你能澄清一下这个问题吗.. 打印出用空格分隔的每个单词的目的是什么?
      【解决方案5】:

      这是未经测试的,但我觉得这是一个学习练习,所以这应该会让你走上正确的道路。在 for 循环中,您将单词的每个字符作为子字符串访问,并在末尾(单词的结尾)连接一个空格。

      string word2 ="";
      for (int i = 0; i<word.length-1;i++) {
          word2 = word.substring(i, i+1)+" ";
      }
      

      【讨论】:

      • 对不起,错过了,看看你之前的代码。你以前做过同样的事情。 (考虑替换 b)
      【解决方案6】:

      我正在使用以下代码:

      Arrays.stream(yourString.split(" ")).forEach( element -> {
                      // do something with each element
                      System.out.println(element + "\n");
                  });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-17
        • 1970-01-01
        相关资源
        最近更新 更多