c# - 如何将空格(引号内的空格除外)转换为 C# 中的逗号?

标签 c# string

假设我有这样一个字符串:

one two three "four five six" seven eight

我想把它转换成这样:

one,two,three,"four five six",seven,eight

在 C# 中执行此操作的最简单方法是什么?

最佳答案

假设引号是不可避免的,您可以执行以下操作。

public string SpaceToComma(string input) { 
  var builder = new System.Text.StringBuilder();
  var inQuotes = false;
  foreach ( var cur in input ) {
    switch ( cur ) { 
      case ' ':
         builder.Append(inQuotes ? cur : ',');
         break;
      case '"':
         inQuotes = !inQuotes;
         builder.Append(cur);
         break;
      default:
         builder.Append(cur);
         break;
    }
  }
  return builder.ToString();
}

关于c# - 如何将空格(引号内的空格除外)转换为 C# 中的逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1019855/

相关文章:

Php检查字符串是否包含多个单词

c# - 由方法调用组成的简单 DSL 的 Lexer/Parser

c# - 如何将此对象保存到文件中?

javascript - 将数组拆分为 100 个 Javascript 的多个字符串

java - 格式化字符串输出

Javascript:从 var 打印(到打印机...)?

c# - 如何订购 2 个不同的列表?

c# - 使用 lambda linq 将 xml 转换为自定义类

C# NPOI Excel 工具不删除行?

使用动态函数复制字符串