【问题标题】:Split a string based on a number given? [closed]根据给定的数字拆分字符串? [关闭]
【发布时间】:2026-01-31 11:10:01
【问题描述】:

注意:无需更新此问题即可。我想了个办法自己解决。

这是我目前所拥有的:

public static String splitStringUserNumb(String message, int x){
  String result= "";


  //Something I have to do here but not sure how I can approach the problem
  int countToSplit = 0;

  for(int i =0; i < text.length(); i){

    if(countToSplit == SplitStringNum){
         result+= text.substring(i,)
     }



    countToSplit++;
    }



  return result;
}

【问题讨论】:

  • 您需要一个循环,获取大小为x 的子字符串,直到字符串的长度小于x
  • 我试过但不知道怎么做,这就是我有的,我会把它放在那里
  • 你应该向我们展示你以前的代码,这样我们可以给你一些建议
  • 首先你应该声明SplitStringNum。然后你必须添加一个不同的条件来拆分你的字符串,然后再次重置你的计数器
  • 或者在这里发布你对问题的回答。

标签: java string


【解决方案1】:

你可以这样做:

 public static String splitStringUserNumb(String message, int x) {
    StringBuilder res = new StringBuilder();

    int start = 0;
    for(int i = x; i < message.length(); i += x){
      res.append(message, start, i);
      res.append(" ");
      start = i;
    }

    res.append(message, start, message.length());
    return res.toString();
  }

  public static void main(String[] args) {
    System.out.println(new SplitStringTest().splitStringUserNumb("200211992", 1));
    System.out.println(new SplitStringTest().splitStringUserNumb("200211992", 2));
    System.out.println(new SplitStringTest().splitStringUserNumb("200211992", 3));
    System.out.println(new SplitStringTest().splitStringUserNumb("200211992", 4));
    System.out.println(new SplitStringTest().splitStringUserNumb("", 3));
  }

输出:

2 0 0 2 1 1 9 9 2
20 02 11 99 2
200 211 992
2002 1199 2

【讨论】:

  • 谢谢,但我自己找到了一个更简单的解决方案。感谢您的努力
  • res.append(message, start, i) 更好,它避免了创建子字符串。但请注意,如果数字不完全划分字符串长度,则会出现异常(并且最后会得到一个额外的空格)。
  • 谢谢,更新了代码。我测试了它,似乎没有异常或额外空间的问题。
  • @SergeiSirik 哦,我明白为什么没有了。好的。
【解决方案2】:

试试这样的

在哪里;

文本是原始字符串, x 是要分割的数字

public static String splitStringUserNumb(String text, int x){
    String result= "";

    for(int i =0; i < text.length() - x; i += x){
        result += text.substring(i,i+x);
    }

    return result;
}

如果您想知道为什么需要这样做text.length() - x,那是因为您不想在索引超出范围后对其进行拆分

【讨论】:

    最近更新 更多