gpt4 book ai didi

C# 如何在字符串中写行特定字符串?

转载 作者:太空宇宙 更新时间:2023-11-03 12:04:08 26 4
gpt4 key购买 nike

我是 c# 的新手,遇到了一些小问题。我有 string:

string file = "Eep_A5000400A_A4000500A$1000219_Mura_20190409003057.eep";

string name1;
string name2;
string name3;
string name4;

如何获取string的位置

  6..12  ->  "5000400" 
16..22 -> "4000500"
33..36 -> "Mura"
53..55 -> "eep"

通过使用 IndexOfSubstring? (上面的 file 只是一个例子,其中的 string 可能不同)。例如,我的期望结果是:

Console.WriteLine(name1);
Console.WriteLine(name2);
Console.WriteLine(name3);
Console.WriteLine(name4);

结果:

5000400
4000500
Mura
eep

你们有什么想法吗?提前致谢。

最佳答案

简单的算术应该做:

string name = file.Substring(startIndex - 1, stopIndex - startIndex + 1);

在你的情况下

name1 = file.Substring( 6 - 1, 12 -  6 + 1);
name2 = file.Substring(16 - 1, 22 - 16 + 1);
name3 = file.Substring(33 - 1, 36 - 33 + 1);
name4 = file.Substring(53 - 1, 55 - 53 + 1);

你可能想为此实现一个扩展方法:

  public static partial class StringExtensions {
public static string FromTo(this string value, int fromIndex, int toIndex) {
if (null == value)
throw new ArgumentNullException(nameof(value));
else if (fromIndex < 1 || fromIndex > value.Length)
throw new ArgumentOutOfRangeException(nameof(fromIndex));
else if (toIndex < 1 || toIndex > value.Length || toIndex < fromIndex)
throw new ArgumentOutOfRangeException(nameof(toIndex));

return value.Substring(fromIndex - 1, toIndex - fromIndex + 1);
}
}

然后简单的写成

  name1 = file.FromTo( 6, 12);
name2 = file.FromTo(16, 22);
name3 = file.FromTo(33, 36);
name4 = file.FromTo(53, 55);

关于C# 如何在字符串中写行特定字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55847375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com