【问题标题】:Remove newline character from a string?从字符串中删除换行符?
【发布时间】:2021-01-04 14:46:51
【问题描述】:

我有一个这样的字符串:

"string content here
 "

因为屏幕太长,一行都放不下

字符串是我要读取的文件的名称,但我总是收到一条错误消息,指出未找到文件名,因为它在字符串中包含换行符,而这显然不在文件名。我无法重命名该文件,我已尝试使用 strip 功能将其删除,但这不起作用。如何从字符串中删除输入字符以便加载文件?

【问题讨论】:

  • 是字符串还是字符向量?你的话说“字符串”,但例子说字符向量。如果在存储字符串/字符向量的变量上调用 size() 会发生什么?
  • 抱歉,我认为这是一个字符向量,我对 Matlab 很陌生。我得到 ans = 1 1
  • 那么就是一个字符串。如果它是一个字符向量(由“文本”表示),那么每个字母都是向量的一个条目(“文本”是 4 长)。如果是字符串,则只有 1 个元素(用“文本”表示)。

标签: string matlab


【解决方案1】:

您可以使用函数strip 从字符串中删除任何尾随空格。

>> text = "hello" + newline; %Create test string.
>> disp(text)
hello

>> text_stripped = strip(text);
>> disp(text_stripped)
hello
>>

在上面的“>>”中包含了更好地去除字符串中的空白。

【讨论】:

    【解决方案2】:

    考虑使用strrep 将换行符替换为空。 Link

    举个例子:

    s = sprintf('abc\ndef')     % Create a string s with a newline character in the middle
    s = strrep(s, newline, '')  % Replace newline with nothing
    

    或者,如果有多个字符导致您出现问题,您可以使用 regular expressions

    或者,如果您知道换行符总是出现在开头或结尾,您可以使用 strip

    【讨论】:

    • 你的字符串不是字符串。 s 是一个字符数组。但是,strrep 显然也适用于字符串,因此您的答案完全有效。
    猜你喜欢
    • 2011-10-13
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    相关资源
    最近更新 更多