ios - vazio - verificar se é string javascript
Como faço para testar se uma string está vazia no Objective C? (20)
Versão rápida
Mesmo que esta seja uma questão do Objective C, eu precisava usar o NSString
no Swift, então eu também incluirei uma resposta aqui.
let myNSString: NSString = ""
if myNSString.length == 0 {
print("String is empty.")
}
Ou se o NSString
for um Opcional:
var myOptionalNSString: NSString? = nil
if myOptionalNSString == nil || myOptionalNSString!.length == 0 {
print("String is empty.")
}
// or alternatively...
if let myString = myOptionalNSString {
if myString.length != 0 {
print("String is not empty.")
}
}
A versão normal do Swift String
é
let myString: String = ""
if myString.isEmpty {
print("String is empty.")
}
Veja também: Verificar string vazia no Swift?
Como faço para testar se um NSString
está vazio no Objective C?
É tão simples como if([myString isEqual:@""])
ou if([myString isEqualToString:@""])
A melhor maneira, em qualquer caso, é verificar o comprimento da string dada. Para isso, se sua string for myString, o código será:
int len = [myString length];
if(len == 0){
NSLog(@"String is empty");
}
else{
NSLog(@"String is : %@", myString);
}
A primeira abordagem é válida, mas não funciona se sua string tiver espaços em branco ( @" "
). Portanto, você deve limpar esses espaços em branco antes de testá-lo.
Este código limpa todos os espaços em branco nos dois lados da string:
[stringObject stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ];
Uma boa ideia é criar uma macro, para que você não precise digitar essa linha de monstro:
#define allTrim( object ) [object stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ]
Agora você pode usar:
NSString *emptyString = @" ";
if ( [allTrim( emptyString ) length] == 0 ) NSLog(@"Is empty!");
Apenas passe sua string para o seguinte método:
+(BOOL)isEmpty:(NSString *)str
{
if(str.length==0 || [str isKindOfClass:[NSNull class]] || [str isEqualToString:@""]||[str isEqualToString:NULL]||[str isEqualToString:@"(null)"]||str==nil || [str isEqualToString:@"<null>"]){
return YES;
}
return NO;
}
Apenas use uma das condições if
else
como mostrado abaixo:
Método 1:
if ([yourString isEqualToString:@""]) {
// yourString is empty.
} else {
// yourString has some text on it.
}
Método 2:
if ([yourString length] == 0) {
// Empty yourString
} else {
// yourString is not empty
}
Está funcionando como charme para mim
Se o NSString
é s
if ([s isKindOfClass:[NSNull class]] || s == nil || [s isEqualToString:@""]) {
NSLog(@"s is empty");
} else {
NSLog(@"s containing %@", s);
}
Eu coloquei isso:
@implementation NSObject (AdditionalMethod)
-(BOOL) isNotEmpty
{
return !(self == nil
|| [self isKindOfClass:[NSNull class]]
|| ([self respondsToSelector:@selector(length)]
&& [(NSData *)self length] == 0)
|| ([self respondsToSelector:@selector(count)]
&& [(NSArray *)self count] == 0));
};
@end
O problema é que, se self é nulo, essa função nunca é chamada. Ele retornará falso, o que é desejado.
Outra opção é verificar se é igual a @""
com isEqualToString:
forma:
if ([myString isEqualToString:@""]) {
NSLog(@"myString IS empty!");
} else {
NSLog(@"myString IS NOT empty, it is: %@", myString);
}
Pode ser que esta resposta seja a duplicata de respostas já dadas, mas fiz poucas modificações e alterações na ordem de checar as condições. Por favor, consulte o código abaixo:
+(BOOL)isStringEmpty:(NSString *)str
{
if(str == nil || [str isKindOfClass:[NSNull class]] || str.length==0) {
return YES;
}
return NO;
}
Post muito útil, para adicionar suporte NSDictionary, bem como uma pequena alteração
static inline BOOL isEmpty(id thing) {
return thing == nil
|| [thing isKindOfClass:[NSNull class]]
|| ([thing respondsToSelector:@selector(length)]
&& ![thing respondsToSelector:@selector(count)]
&& [(NSData *)thing length] == 0)
|| ([thing respondsToSelector:@selector(count)]
&& [thing count] == 0);
}
Tente o seguinte
NSString *stringToCheck = @"";
if ([stringToCheck isEqualToString:@""])
{
NSLog(@"String Empty");
}
else
{
NSLog(@"String Not Empty");
}
Você deve usar melhor esta categoria:
@implementation NSString (Empty)
- (BOOL) isWhitespace{
return ([[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]length] == 0);
}
@end
Você pode facilmente verificar se a string está vazia com isso:
if ([yourstring isEqualToString:@""]) {
// execute your action here if string is empty
}
Você pode verificar se [string length] == 0
. Isto irá verificar se é uma string válida, mas vazia (@ ""), bem como se é nulo, já que chamar length
on nil também retornará 0.
Você pode verificar se sua string está vazia ou não usando este método:
+(BOOL) isEmptyString : (NSString *)string
{
if([string length] == 0 || [string isKindOfClass:[NSNull class]] ||
[string isEqualToString:@""]||[string isEqualToString:NULL] ||
string == nil)
{
return YES; //IF String Is An Empty String
}
return NO;
}
A melhor prática é fazer com que uma classe compartilhada diga UtilityClass e ad this method para que você possa usar esse método apenas chamando-a pelo aplicativo.
verifique isso:
if ([yourString isEqualToString:@""])
{
NsLog(@"Blank String");
}
Ou
if ([yourString length] == 0)
{
NsLog(@"Blank String");
}
Espero que isso ajude.
//Different validations:
NSString * inputStr = @"Hey ";
//Check length
[inputStr length]
//Coming from server, check if its NSNull
[inputStr isEqual:[NSNull null]] ? nil : inputStr
//For validation in allowed character set
-(BOOL)validateString:(NSString*)inputStr
{
BOOL isValid = NO;
if(!([inputStr length]>0))
{
return isValid;
}
NSMutableCharacterSet *allowedSet = [NSMutableCharacterSet characterSetWithCharactersInString:@".-"];
[allowedSet formUnionWithCharacterSet:[NSCharacterSet decimalDigitCharacterSet]];
if ([inputStr rangeOfCharacterFromSet:[allowedSet invertedSet]].location == NSNotFound)
{
// contains only decimal set and '-' and '.'
}
else
{
// invalid
isValid = NO;
}
return isValid;
}
if( [txtMobile.text length] == 0 )
{
[Utility showAlertWithTitleAndMessage: AMLocalizedString(@"Invalid Mobile No",nil) message: AMLocalizedString(@"Enter valid Mobile Number",nil)];
}
if(str.length == 0 || [str isKindOfClass: [NSNull class]]){
NSLog(@"String is empty");
}
else{
NSLog(@"String is not empty");
}