Controleer of een string een speciaal teken bevat

Hoe controleer je of een tekenreeks een speciaal teken bevat, zoals:

[,],{,},{,),*,|,:,>,

Antwoord 1, autoriteit 100%

Pattern p = Pattern.compile("[^a-z0-9 ]", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("I am a string");
boolean b = m.find();
if (b)
   System.out.println("There is a special character in my string");

Antwoord 2, autoriteit 21%

U kunt de volgende code gebruiken om een ​​speciaal teken uit een tekenreeks te detecteren.

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DetectSpecial{ 
public int getSpecialCharacterCount(String s) {
     if (s == null || s.trim().isEmpty()) {
         System.out.println("Incorrect format of string");
         return 0;
     }
     Pattern p = Pattern.compile("[^A-Za-z0-9]");
     Matcher m = p.matcher(s);
    // boolean b = m.matches();
     boolean b = m.find();
     if (b)
        System.out.println("There is a special character in my string ");
     else
         System.out.println("There is no special char.");
     return 0;
 }
}

Antwoord 3, autoriteit 18%

Als je LETTERS, SPECIALE KARAKTERS en NUMMERS in je wachtwoord wilt hebben van minimaal 8 cijfers, gebruik dan deze code, het werkt perfect

public static boolean Password_Validation(String password) 
{
    if(password.length()>=8)
    {
        Pattern letter = Pattern.compile("[a-zA-z]");
        Pattern digit = Pattern.compile("[0-9]");
        Pattern special = Pattern.compile ("[!@#$%&*()_+=|<>?{}\\[\\]~-]");
        //Pattern eight = Pattern.compile (".{8}");
           Matcher hasLetter = letter.matcher(password);
           Matcher hasDigit = digit.matcher(password);
           Matcher hasSpecial = special.matcher(password);
           return hasLetter.find() && hasDigit.find() && hasSpecial.find();
    }
    else
        return false;
}

Antwoord 4, autoriteit 11%

Als het overeenkomt met regex [a-zA-Z0-9 ]*, dan staan ​​er geen speciale tekens in.


Antwoord 5, autoriteit 7%

Wat noem je precies “speciaal teken”? Als je iets bedoelt als “alles dat niet alfanumeriek is”, kun je de klasse org.apache.commons.lang.StringUtils gebruiken (methoden IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable).

Als het niet zo triviaal is, kun je een regex gebruiken die de exacte tekenlijst definieert die je accepteert en de tekenreeks ermee vergelijkt.


Antwoord 6, autoriteit 5%

Alles hangt af van wat je precies bedoelt met ‘speciaal’. In een regex kunt u specificeren

  • \W betekent niet-alpanumeriek
  • \p{Punct} betekent leestekens

Ik vermoed dat je dat laatste bedoelt. Maar zo niet, gebruik dan een [] lijst om precies te specificeren wat je wilt.


Antwoord 7, autoriteit 4%

Bekijk de klasse java.lang.Character. Het heeft een aantal testmethoden en misschien vindt u er een die aan uw behoeften voldoet.

Voorbeelden: Character.isSpaceChar(c)of !Character.isJavaLetter(c)


Antwoord 8, autoriteit 4%

Dit is getest in Android 7.0 tot en met Android 10.0 en het werkt

Gebruik deze code om te controleren of string speciale tekens en cijfers bevat:

 name = firstname.getText().toString(); //name is the variable that holds the string value
  Pattern special= Pattern.compile("[^a-z0-9 ]", Pattern.CASE_INSENSITIVE);
  Pattern number = Pattern.compile("[0-9]", Pattern.CASE_INSENSITIVE);
  Matcher matcher = special.matcher(name);
  Matcher matcherNumber = number.matcher(name);
  boolean constainsSymbols = matcher.find();
  boolean containsNumber = matcherNumber.find();
  if(constainsSymbols == true){
   //string contains special symbol/character
  }
  else if(containsNumber == true){
   //string contains numbers
  }
  else{
   //string doesn't contain special characters or numbers
  }

Antwoord 9

Zet de tekenreeks om in een char-array met alle letters in kleine letters:

char c[] = str.toLowerCase().toCharArray();

Vervolgens kun je Character.isLetterOrDigit(c[index])gebruiken om erachter te komen welke index speciale tekens heeft.


Antwoord 10

Gebruik de statische methode-overeenkomsten van de klasse java.util.regex.Pattern (regex, String obj)
regex: tekens in kleine letters en hoofdletters & cijfers tussen 0-9
String obj : Stringobject waarvan u wilt controleren of het een speciaal teken bevat of niet.

Het retourneert de booleaanse waarde true als deze alleen tekens en cijfers bevat, anders wordt de booleaanse waarde false geretourneerd

Voorbeeld.

String isin = "12GBIU34RT12";<br>
if(Pattern.matches("[a-zA-Z0-9]+", isin)<br>{<br>
   &nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Valid isin");<br>
}else{<br>
   &nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Invalid isin");<br>
}

Other episodes