Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用正则表达式在每行达到一定长度时向字符串添加新行_Java_Regex_String - Fatal编程技术网

Java 使用正则表达式在每行达到一定长度时向字符串添加新行

Java 使用正则表达式在每行达到一定长度时向字符串添加新行,java,regex,string,Java,Regex,String,我试图确保文本不会出现在窗口外,因为窗口大小无法更改 上图显示了订单号字符串超过窗口长度时发生的情况。我试图确保当订单号字符串的长度达到一定长度时,我使用正则表达式为下一个订单生成一行新行 private String listOfOrders( Map<String, List<Integer> > map, String key ) { String res = ""; if ( map.containsKey( key )) {

我试图确保文本不会出现在窗口外,因为窗口大小无法更改

上图显示了订单号字符串超过窗口长度时发生的情况。我试图确保当订单号字符串的长度达到一定长度时,我使用正则表达式为下一个订单生成一行新行

private String listOfOrders( Map<String, List<Integer> > map, String key )
  {
    String res = "";
    if ( map.containsKey( key ))
    {
      List<Integer> orders = map.get(key);
      for ( Integer i : orders )
      {
          res += " " + i + ",";
      }
    } else {
      res = "-No key-";
    }
    return res;
  }
}
但这根本没有效果。我还意识到,这段代码无法判断每行的长度,因为我使用的是长度来确定每行的长度,而不是每行在每个“\n”之间的长度

我的问题是,如何使用正则表达式来确保字符串中的每一行都有一定数量的字符长?因为我的尝试没有成功。上面只是提供了上下文,说明为什么我希望字符串中的行具有特定长度


谢谢

这应该由GUI工具包完成,而不是由正则表达式完成。根据字体和文本的不同,一行可以容纳20个以上或20个以下的字符。我想我的问题是,如何设置字符串的格式,并限制字符串中每行的字符数不超过设定的数量。您使用的是JTextArea吗?还是什么?我用的是内置库。画布、图形和容器!也许
SwingUtilities.computeStringWidth(FontMetrics fm,String str)
是您要找的吗?
    if(res.length() >= W-10)
    {
        res = res.replaceAll("(.{20})", "$1\n");
    }
    else
    {
        res += " " + i + ",";
    }