gpt4 book ai didi

c# - String.Replace 未按预期工作

转载 作者:行者123 更新时间:2023-11-30 19:15:16 25 4
gpt4 key购买 nike

我有一个程序

    public void TestMethod2()
{
string[] keywords =
{
"SELECT", "FROM", "WHERE", "GROUP", "HAVING", "ORDER", "LEFT", "RIGHT", "JOIN", "INNER", "OUTER", "ASC",
"DESC", "AND", "OR","IN", "BETWEEN", "BY", "NOT", "ON", "AS", "CASE", "WHEN", "ELSE", "UPDATE", "SET"
};

var actualString = "SELECT * FROm A Join B On C in D case e join t left outer join inner join right join";

foreach (var text in actualString.Split(' '))
{
var isExists = keywords.Any(x => x.Equals(text, StringComparison.OrdinalIgnoreCase));

if (!isExists)
{
continue;
}

actualString = actualString.Replace(text, text.ToUpper());
}


var expectedString = "SELECT * FROM A JOIN B ON C IN D CASE e JOIN t LEFT OUTER JOIN INNER JOIN RIGHT JOIN";

}

我是 C# 的新手。我不清楚为什么 Replace() 方法没有按预期工作。它正在显示输出SELECT * FROM A JOIN B ON C IN D CASE e joIN t LEFT OUTER joIN INner joIN RIGHT joIN

有人能告诉我为什么 Replace() 会这样吗?提前致谢。

最佳答案

如果调试它,您会注意到您的关键字“in”替换了第二个连接,因此您获得了连接。稍后您的文本变量将尝试用“JOIN”替换“join”,但它不会找到“join”,因为它的一部分是大写的。

关于c# - String.Replace 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41913491/

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