2012-01-16 2 views
19

Есть ли способ определить, имеет ли строка пробел в нем?Проверьте, имеет ли строка пробел между (или в любом месте)

sossjjs sskkk должен вернуть true, а sskskjsk должен возвращать значение false.

"sssss".Trim().Length, похоже, не работает.

+3

Does String.Contains ("") не подходит для вас? – Reddog

+0

Это странно ... – Bastardo

+0

Возможный дубликат [Обнаружение пробелов в текстовом поле] (http://stackoverflow.com/questions/8866455/detecting-whitespace-in-textbox) –

ответ

44

Как насчет ..

string s = "Hello There"; 
bool fHasSpace = s.Contains(" "); 
+1

Для кого-то, пытающегося не использовать магические строки, это не решение. –

+1

Это действительно лучшее решение, все, что вам нужно сделать, чтобы проверить, используется ли пространство, если оно выполнено. –

4

Trim() удалит только начальные и конечные пробелы.

Try .Contains(), чтобы проверить, если строка содержит пробелы

"sossjjs sskkk".Contains(" ") // returns true 
+0

Хороший звонок. должен был подумать об этом! – dotnetdev

7

Также можно использовать регулярные выражения, чтобы достичь этого, если вы хотите, чтобы проверить любой символ пробела, а не только пространство.

var text = "sossjj ssskkk"; 
var regex = new Regex(@"\s"); 
regex.IsMatch(text); // true 
+2

Вы также можете использовать статический 'Regex.IsMatch (text, @" \ s ")' –

+0

Если вы делаете много сравнений, то стоит использовать версию экземпляра, но для общего случая статический 'Regex.IsMatch() 'более чем достаточно http://stackoverflow.com/a/414411/132599. –

2

Эта функция поможет вам ...

bool isThereSpace(String s){ 
    return s.Contains(" "); 
} 
67

Как насчет:

myString.Any(x => Char.IsWhiteSpace(x)) 

Или, если вам нравится с помощью "метода группы" синтаксис:

myString.Any(Char.IsWhiteSpace) 
+1

Полезно для обнаружения всех типов пространств: http://en.wikipedia.org/wiki/Whitespace_character – Velcro

+8

Может быть сокращено до 'if (myString.Any (Char.IsWhiteSpace))' и немного читаем. –

+2

Это действительно должно быть принятым anwer, нет никакого рассказа о том, сколько странных символов пробелов есть, и это будет работать со всем .NET понимает – mfeineis

-4

Если вам нужно только определить начало и конец белых Темп, я предлагаю использовать этот метод расширения, который был точно настроен с учетом производительности.

/// <summary> 
/// Detects Whitespace at the beginning or end of a string. 
/// Whitespace in the middle of the string is ignored. 
/// </summary> 
/// <param name="data"></param> 
/// <returns></returns> 
public static bool HasWhiteSpace(this string data) 
{ 
    return data[0] == 0x20 || data[data.Length - 1] == 0x20; 
} 
+0

Lol, какого черта? Почему все downvotes? Клянусь, Stackoverflow - это, вероятно, самый дегенерированный, аутичный и токсичный веб-сайт в Интернете. – Krythic

+0

«Точная настройка с учетом производительности» завершится неудачей с пустой строкой. – sisve

+0

Также задан вопрос о проверке, имеет ли строка пробел _in_ it, а не если в нем есть пробел в начале или конце. – sisve

Смежные вопросы