【问题标题】:String manipulation [closed]字符串操作[关闭]
【发布时间】:2012-09-27 14:56:49
【问题描述】:

好吧,假设我有以下字符串:

75 \r\n 95 64 \r\n 17 47 82

请注意,数字是用空格分隔的。

我希望我的数组包含以下元素:75 95 64 17 47 82。

我一直在尝试解决它很长时间,但还没有运气..

谁能为此提供任何解决方案或想法?

这不是家庭作业。我只是想增加我对字符串操作练习的了解。

编辑:请不要使用 LINQ 解决方案,因为我对该主题一无所知。

【问题讨论】:

  • 您是否在字符串中看到字符“\r\n”,或者您是否尝试从字符串中删除实际的回车符和换行符?
  • 我忍不住了。 var intArray = Regex.Matches(s, @"\d+").Cast<Match>().Select(m => int.Parse(m.Value)).ToArray();

标签: c# java string substring indexof


【解决方案1】:

只需使用 'replace' 删除带有空白的 '\r\n'。看下面的例子:

   string s = "75 \r\n 95 64 \r\n 17 47 82";
   s = s.Replace("\r\n ", "");

如果你想把它放在数组中,你可以使用 split

   string[] string_arr = s.Split(' ');

【讨论】:

    【解决方案2】:

    在 C# 中:

    string toSplit = "75 \r\n 95 64 \r\n 17 47 82";
    
    string[] numbers = toSplit.Split(new[] { Environment.NewLine, "\t", " " },
                                     StringSplitOptions.RemoveEmptyEntries);
    

    Split() 的第一个参数是一个字符串数组,用于确定要在输入字符串中查找哪些字符串以进行拆分。第二个参数将确保从拆分数组中删除任何空白条目。

    该数组仍然包含字符串,但之后您可以轻松转换为您选择的数字格式(shortintushortuint 等)。

    【讨论】:

    • 对我来说看起来很棒,也感谢您的解释。现在对我来说很有意义。
    • 顺便说一句,\t 是干什么用的?
    • \t 是一个制表符。新行 (\r\n) 可以/将在不同平台上有所不同,但制表符将始终为 \t。见here。如果还有其他空白字符或转义字符,则可以在第一个 Split() 参数中将它们添加到字符串数组中。
    • 我明白了,谢谢你帮了我很多。
    【解决方案3】:

    在 Java 中:

    String yourString = "75 \r\n 95 64 \r\n 17 47 82";
    String[] array = yourString.split("\\s+");
    

    将删除所有空白字符:[ \t\n\x0B\f\r]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-29
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 2016-04-18
      • 1970-01-01
      相关资源
      最近更新 更多