拆分字符串并在autocad中单独打印字符串的值

时间:2016-08-06 12:01:20

标签: c# string split autocad

534-W1A-R1这是我的文件名,我想将其拆分,以便打印出像

一样
Code=534 Phase=1 Zone=A

在我的Autocad文件中。

4 个答案:

答案 0 :(得分:1)

你有不同的方法来做到这一点。如果你确定文本的格式,你可以使用它:

var str= "534-W1A-R1";
var parts=str.Split('-');
var code= parts[0];
var secondPart= parts[1];
var phase=secondPart.Substring(1,secondPart.Length-2);
var zone=secondPart[secondPart.Length-1]; 

如果它更复杂,你也可以使用Regex。

答案 1 :(得分:1)

以下拆分代码应该有效:

string str = @"534-W1A-R1";

var split = str.Split('-');

string code = split.First();
string phase = new string(split.ElementAt(1).Skip(1).Take(1).ToArray());
string zone = new string(split.ElementAt(1).Skip(2).Take(1).ToArray());

string result = String.Format("Code={0} Phase={1} Zone={2}", code, phase, zone);
Console.WriteLine(result);

输出:

Code=534 Phase=1 Zone=A

答案 2 :(得分:1)

使用Substring()方法。

string input = "534-W1A-R1";
string sub = input.Substring(0, 3);
string sub2 = input.Substring(5, 1);
string sub3 = input.Substring(6, 1);
Console.WriteLine("Code={0} Phase={1} Zone={2}", sub, sub2, sub3);

输出:

Code=534 Phase=1 Zone=A

答案 3 :(得分:0)

使用Regex

编辑:添加了一些评论(模式描述)

var pattern = @"^(\d+)-[A-Z](\d+)([A-Z])-";
/* pattern description:
^(\d+)  group 1: one or more digits at the begining
-       one hyphen (literal)
[A-Z]   one alphabetic character
(\d+)   group 2: one or more digits
([A-Z]) group 3: one alphabetic character
-       one hyphen (literal)
*/
var input = "534-W1A-R1";
var groups = Regex.Match(input, pattern, RegexOptions.IgnoreCase).Groups;
var code = groups[1].Value;
var phase = groups[2].Value;
var zone = groups[3].Value;