【问题标题】:Remove all string after a space [closed]删除空格后的所有字符串[关闭]
【发布时间】:2023-03-25 18:58:02
【问题描述】:

我有这个变量

c#

string text = "val1  val2";

javastript

var text = "val1  val2"

我需要一个示例来删除空格之后的所有内容,以便结果是 string textModified = "val1";

你能帮帮我吗?

【问题讨论】:

  • 您正在寻找c#javascript 或两者兼而有之???

标签: javascript c# jquery


【解决方案1】:

在这两种情况下,只需在" " 上拆分并获取索引0 上的元素。以下为

alert(text.split(" ")[0]); // Javascript

这是给

Console.WriteLine(text.Split(' ')[0]);

【讨论】:

  • 这是获得0th元素的最轻松的方式,而不是全部删除。
  • 非常感谢阿米特!
  • @GonzaloRivera 很高兴为您提供帮助 :)
【解决方案2】:

一个例子是:

c#

string text = "val1  val2";
string textModified = text.Split(' ')[0];
//Another way:
string textModified = text.IndexOf(' ');
var textModified = text.Substring(0, index);

Js

    var text = "val1  val2";
    var textModified = text.Split(' ')[0];

    // Another way:
    var index = text.indexOf(' ');
    var textModified = text.substring(0, index);

【讨论】:

  • 我相信你的意思是split(' '),否则你会在每个字母上分开。
  • 我相信你也指的是Split而不是split
  • @Spokey 是的,谢谢。
  • 等等..我迷路了,这个答案应该是针对 JS 还是 c#?
  • @Spokey 我都写了 LOL。
【解决方案3】:

您可以使用String.Remove 删除空格后的所有内容。使用String.IndexOf 在字符串中查找空格。

string text = "val1  val2";
string newText = text.Remove(text.IndexOf(' '));

你还可以检查字符串是否包含空格:

if (text.Contains(' '))
{
    string newText = text.Remove(text.IndexOf(' '));
}

如果字符串中没有空格,这将使您免于异常。

至于 JavaScript:你可以这样做:

console.log(text.substr(0,text.indexOf(' ')));

还应添加检查是否存在空间。

【讨论】:

  • 你能不能给例如。也适用于javascript?
  • @jQuery.PHP.Magento.com,不是 javascript 专家,但 text.substr(0,text.indexOf(' ')); 应该可以工作。
【解决方案4】:

这里是使用 SubString 的另一种方法

string text = "val1 val2";
int Space = text.IndexOf(' ');
string textModified = text.Substring(0, Space > 0 ? Space : text.Length);

和 Linq

string text = "val1 val2";
string textModified = new string(text.TakeWhile(x => x != ' ').ToArray());

【讨论】:

    【解决方案5】:

    而不是拆分:

    var word = text.substr(0, (text + " ").indexOf(" "));
    

    (在 C# 中切换为 .Substring / .IndexOf


    为了好玩,C# 和 JS (ES5) 都有:

    var output = ""; var i = 0;
    text += " ";
    while (text[i] != ' ')
        output += text[i++];
    

    【讨论】:

      【解决方案6】:

      我不喜欢通过你将来可能需要的数据,所以将字符串分解成组件怎么样。由于您知道空格是分隔符,因此只需将空格“”设置为分隔线的分隔符。下面是一个例子:

      string[] read_Items = new string[15];
      string text = "val1  val2"
      int item_cnt = 0;
      
      // set delimiter for a single space  
      char[] delimiters = new char[] { ' ' };
      
      
      // Remove and double spaces and replace them with single spaces
       while (test.Contains("  "))
          test = test.Replace("  ", " ");
      
      // Break up line into individual items
      foreach (string word in test.Split(delimiters))
      {
          read_Items[item_cnt] = word;
          item_cnt++;
          if (item_cnt > 14)
              break;
       }
      

      现在您有一个项目数组,您可以调整其大小以适应一行中任意数量的项目。注意:如果您需要多个分隔符,则表示您还需要在 '='、':' 上进行拆分,您的分隔符定义将是:

      char[] delimiters = new char[] { ' ', '=', ':' };
      

      【讨论】:

      • string.Split 返回一个string[],那么为什么要迭代它并将值放入另一个数组,其大小可能大于或小于拆分项的数量?此外,您可以使用string.Split 的重载而不是替换双空格,它采用StringSplitOptions 并传入StringSplitOptions.RemoveEmptyEntries,它将处理任意数量的连续空格作为一个分隔符。
      猜你喜欢
      • 1970-01-01
      • 2012-03-08
      • 2013-07-28
      • 2012-01-06
      • 1970-01-01
      • 2019-11-25
      相关资源
      最近更新 更多