我有像"blabllabnsdfsdfsd"
这样的字符串
我想把它"blab-llab-nsdf-sdfs"
以某种方式可以使用Regex.Replace
吗?
这样做的最佳方式是什么?
答案 0 :(得分:8)
string bla = "blabllabnsdfsdfsd";
bla = Regex.Replace(bla, ".{4}", "$0-");
bla = bla.Remove(bla.Length - 1);
答案 1 :(得分:1)
最简单的方法是使另一个字符串将此字符串复制到该字符中,并在每4个字符后添加-
。
string a = "abcdefghijklmn";
List<char> b= new List<char>();
int j = 0;
for (int i = 0; i < a.Length; i++)
{
if (i % 4 == 0)
b.Add('-');
b.Add(a[i]);
}
String result = new String(b.ToArray()) ;
答案 2 :(得分:0)
我会说for循环。
for( i = 0 ; i < string.length ; i+4){
string.addAtPosition(i , "-");
}
函数名称取决于语言。
答案 3 :(得分:0)
for(int i = 0; i < str.Length; ++i)
{
if(i % 4 == 0 && i != 0)
newStr += "-" + str[i];
else
newStr += str[i];
}
你走了。 你从分部拿出模数得出结论它是第4个字符。
答案 4 :(得分:0)
一种方法是:
string s = "blabllabnsdfsdfsd";
StringBuilder sb = new StringBuilder();
int position = 0;
// add a `-` every 4 chars
while (position < s.Length -4) // the (-4) is to avoid the last `-`
{
sb.Append(s.Substring(position, 4));
sb.Append("-");
position += 4;
}
sb.Append(s.Substring(position)); // Adds the last part of the string
Console.Out.WriteLine("out" + sb.ToString());
输出:blab-llab-nsdf-sdfs-d
你可以玩它...你可以用while (position <s.Length)
运行循环(没有-4,然后修剪字符串以删除最后-
,依此类推。
呵呵,注意到我的输入中有一个额外的d
,因此输出中有额外的-d
。
答案 5 :(得分:0)
尝试并测试
List<String> str = new List<String>();
String myString = "blabllabnsdfsdfsd";
int index = 0;
for (int i = 0; i < myString.Length; i = i + 4)
{
index = i;
if (myString.Length >= index + 4)
str.Add(myString.Substring(index, 4));
}
myString = String.Join("-", str.ToArray());
这是证据
答案 6 :(得分:0)
这个问题看起来很简单,但是看一下答案的范围,有很多不同的方法可以实现。假设您要在最后一个短划线-
var value = "blabllabnsdfsdfsd";
const int lengthOfSeperator = 4;
for (var i = 0; i <= Math.Floor(value.Length / (decimal)lengthOfSeperator); i++)
{
if (lengthOfSeperator + (lengthOfSeperator * i) + i > value.Length) continue;
value = value.Insert(lengthOfSeperator + (lengthOfSeperator * i) + i, "-");
}
返回blab-llab-nsdf-sdfs-d
答案 7 :(得分:0)
快速单行:
string blab = "blabllabnsdfsdfsd";
string blab2 = String.Join("-", Regex.Matches(blab, ".{1,4}").OfType<Match>().Select(s => s.ToString()).ToArray());
Console.WriteLine(blab);
Console.WriteLine(blab2);
作为字符串扩展名:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string blab = "blabllabnsdfsdfsd";
string blab2 = blab.Chunk("-", 4);
Console.WriteLine(blab);
Console.WriteLine(blab2);
}
}
public static class Extensions
{
public static string Chunk(this String str, string separator, int groupsOf)
{
string[] chunks = System.Text.RegularExpressions.Regex
.Matches(str, ".{1," + groupsOf.ToString() + "}")
.OfType<System.Text.RegularExpressions.Match>()
.Select(s => s.ToString())
.ToArray();
return String.Join(separator, chunks);
}
}