删除空格后的所有字符串[关闭]
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
,它将处理任意数量的连续空格作为一个分隔符。以上是关于删除空格后的所有字符串[关闭]的主要内容,如果未能解决你的问题,请参考以下文章