从字符串开头和结尾删除单引号

10

我想从字符串的开头和结尾删除引号。但是我的现有代码会将字符串中的所有引号都删除。我尝试使用Trim()方法替换,但是没有希望的效果。

我的代码如下

result = value.Replace("'", "").Split(',').ToList();

我也尝试了以下方法,

result = value.TrimStart(Convert.ToChar("'"))
              .TrimEnd(Convert.ToChar("'"))
              .Split(',')
              .ToList();
请给我一个正确的做法。

请参见String.Remove - M.Y.Mnu
4个回答

21
您可以尝试以下方式使用.Trim()函数:
string inputStr = "'some string'";
string outputStr = inputStr.Trim(new char[]{(char)39});

其中 (char)39 表示 '.Trim() 会从字符串中去掉第一个和最后一个 ';您也可以像这样尝试:

string outputStr = inputStr.Trim('\'');

您可以查看此示例


字符串 outputStr = inputStr.Replace("'", ""); 我们应该使用这个对吗?但为什么还需要 trim,为什么它不能像问题中所述的那样工作? - Balaji Marimuthu
1
.Replace 会替换所有指定字符的出现次数。但是 OP 想要删除开头和结尾的 ',所以我选择使用 Trim 而不是 Replace - sujith karivelil
对我有用 :) - Naveen Kumar V

3
string inputStr = "'some string'";
string outputStr = inputStr.Trim('\'')

你能否编辑你的回答并添加一些解释? - GilZ

1
尝试这个。
  int indexOfFirst = value.IndexOf('\'');
  string temp = value.Remove(indexOfFirst, 1);
  int indexOfLast = temp.LastIndexOf('\'');         
  temp = temp.Remove(indexOfLast, 1);

希望这个有用。

当我尝试移除最后一个索引时,第一个索引的值被改变了(使用单个变量temp)。 - PoliDev

0
如果(value.Length >= 2 && value[0] == '\'' && value[value.Length - 1] == '\''){ value = value.Substring(1, value.Length - 2); }
这将检查第一个和最后一个字符是否为单引号,如果是,则将其移除。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接