[英]C# Reading a string from a .txt file
my.txt 文件的片段如下所示:
18 Ladders/ladder_trigger (18 triggers) (18 enabled)
17 assets/prefabs/player/player_model.prefab/collision (0 triggers) (1 enabled)
17 assets/prefabs/misc/xmas/poweredlights/xmas.advanced.lights.deployed.prefab
(0 triggers) (17 enabled)
有 +1000 行,它们的顺序总是随机的。 我的问题是我正在尝试获取一个 int,其中包含一行中启用的值的数量,该行始终包含文本assets/prefabs/player/player_model.prefab/collision和 output 它在控制台中。 总是只有 1 行包含assets/prefabs/player/player_model.prefab/collision但启用值的数量可能不同,文本文件中的 position 总是不同的。 我试图检查这个特定字符串的整个文本文件,然后尝试从那里弄清楚如何获取该数字,但我不知道如何做到这一点。 这是我的代码的一部分,它工作正常,但仅用于检查文件是否包含该字符串,而不是用于获取之后的数字。
string[] words = File.ReadAllText(@"C:\Users\azir\Desktop\KelosRPR\Physics.Colliders.Objects.txt").Split(' ');
string wordtobesearched = "assets/prefabs/player/player_model.prefab/collision";
bool condition = false;
for (int i = 0; i < words.Length; i++)
{
if (words[i].Contains(wordtobesearched) == true)
{
condition = true;
break;
}
else
{
condition = false;
}
}
if (condition == true)
{
Console.WriteLine("{0} found in data", wordtobesearched);
}
else
{
Console.WriteLine("{0} not found in data", wordtobesearched);
}
您可以使用正则表达式来查找enabled
的号码。 这是一个例子。
var text = File.ReadAllText(@"C:\Users\azir\Desktop\KelosRPR\Physics.Colliders.Objects.txt");
var wordtobesearched = "assets/prefabs/player/player_model.prefab/collision";
var regex = new Regex($"{wordtobesearched}.*?\\((\\d+) enabled\\)");
var number = int.Parse(regex.Match(text).Groups[1].Value);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.