删除空格后的所有字符串[关闭]

Posted

技术标签:

【中文标题】删除空格后的所有字符串[关闭]【英文标题】:Remove all string after a space [closed] 【发布时间】:2015-04-13 08:10:37 【问题描述】:

我有这个变量

c#

string text = "val1  val2";

javastript

var text = "val1  val2"

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

你能帮帮我吗?

【问题讨论】:

您正在寻找c#javascript 或两者兼而有之??? 【参考方案1】:

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

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

这是给c#

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,它将处理任意数量的连续空格作为一个分隔符。

以上是关于删除空格后的所有字符串[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

删除字符串中空格后的所有内容

如何以编程方式删除字符串后的空格?

c ++ char vector,删除带有数字的单词加上坏单词后的空格

删除字符串中最后一个空格后的最后一个字符

字符串消除空格

删除熊猫数据框中“标签”列中出现数字后的空格