在每个第四个+符号后添加空格

The*_*irl 7 c# asp.net

我有这样的文字例如:

"A01 + B02 + C03 + D04 + E05 + F06 + G07 + H08 + I09 + J10 + K11 + L12 + M13 + N14 + O15 + P16"

我想在每个第四个'+'符号后添加一个空格.

这是因为如果文本在我的页面中的网格单元格中太长,那么它就会被切断.所以我想在将数据绑定到网格之前简单地包装字符串.

我玩了几个字符串方法,比如获取IndexOf和使用Insert添加空格,或使用StringBuilder从原始字符串中创建一个全新的字符串,但我无法运行最终的解决方案.

任何帮助,将不胜感激.谢谢.

the*_*ejh 10

使用正则表达式:

Pattern pattern = Pattern.compile("([^+]*\\+){4}");
Matcher matcher = pattern.matcher(str);
matcher.replaceAll("\1 ");
Run Code Online (Sandbox Code Playgroud)

  • "但是他会有两个问题"(我记得我记得)(或者我?) (6认同)
  • @drachenstern:我的,今天我们很敏感.我并不是说你在这种情况下错了,因为你是完全正确的(也许我应该强调这一点,所以请接受我的道歉).我说声称任何使用正则表达式的人会有两个问题是错误的和不公平的,这让我很恼火,人们有时会把这个引用用作流行词.是的,看起来你刚开始只是在喷一个流行语,但我现在可以看到你可以实际支持它了.我不确定告诉我要"远离",但是,我不确定我是否欣赏这一点. (3认同)

Ree*_*sey 6

您可以使用LINQ:

string input = "A01+B02+C03+D04+E05+F06+G07+H08+I09+J10+K11+L12+M13+N14+O15+P16";

string final = string.Join(
    "+", 
    input
        .Split('+')
        .Select( (s, i) => (i>0 && i%4==0) ? " "+ s : s));
Run Code Online (Sandbox Code Playgroud)


Jos*_*ola 6

你可以使用CSS word-wrap属性来打破一定宽度的字符串......

td.longString {
  max-width: 150px;
  word-wrap: break-word;
}
Run Code Online (Sandbox Code Playgroud)

只需设置CssClass="longString"相关列即可.

  • +1用于数据保存,并修复实际问题; 显示数据. (2认同)