534-W1A-R1
这是我的文件名,我想将其拆分,以便打印出像
Code=534 Phase=1 Zone=A
在我的Autocad文件中。
答案 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;