Heim  >  Artikel  >  Java  >  Finden Sie den Datentyp der Benutzereingabe mithilfe eines regulären Ausdrucks in Java

Finden Sie den Datentyp der Benutzereingabe mithilfe eines regulären Ausdrucks in Java

WBOY
WBOYnach vorne
2023-09-14 22:33:061137Durchsuche

Finden Sie den Datentyp der Benutzereingabe mithilfe eines regulären Ausdrucks in Java

Bei der Java-Programmierung kann die Bestimmung der Art der vom Client eingegebenen Informationen eine häufige Aufgabe sein, insbesondere beim Erstellen von Anwendungen, die eine Genehmigung oder Verarbeitung von Informationen erfordern. Reguläre Ausdrücke oder reguläre Ausdrücke sind ein wirksames Werkzeug zum Identifizieren von String-Designs und zum Berechnen von Informationskategorien. In diesem Artikel wird eine einzigartige Methode zur Verwendung von Standardausdrücken in Java untersucht, um die Art der vom Client eingegebenen Informationen zu ermitteln.

Grammatik

Die Sprachstruktur regulärer Ausdrücke in Java basiert auf dem Paket java.util.regex. Es bietet Klassen wie Design und Matcher, um das Design regulärer Ausdrücke zu verwalten und Koordinationsoperationen durchzuführen.

Grammatikanweisungen

Um reguläre Ausdrücke in Java zu verwenden, müssen wir zunächst mithilfe der Design-Klasse ein Muster für reguläre Ausdrücke erstellen. Dieses Muster stellt das gewünschte Muster dar, das wir anpassen müssen. Wir werden verschiedene vordefinierte Zeichen und Operatoren in regulären Ausdrücken verwenden, um Muster zu definieren.

Sobald das Design festgelegt ist, erstellen wir ein Matcher-Problem, indem wir die matcher()-Strategie für das Design aufrufen. Mit Matchern können wir Designs auf bestimmte Eingabezeichenfolgen anwenden und koordinierte Operationen durchführen.

Methode 1

Algorithmus

  • Erstellen Sie reguläre Ausdrucksmuster für jeden Datentyp (z. B. Ganzzahlen, Gleitkommazahlen, Zeichenfolgen usw.).

  • Verwenden Sie die Pattern-Klasse, um reguläre Ausdrucksmuster zu kompilieren.

  • Erstellt ein Matcher-Objekt unter Verwendung des kompilierten Musters und der Benutzereingabezeichenfolge.

  • Verwenden Sie die Methode „matches()“ der Klasse „Matcher“, um zu prüfen, ob die Eingabezeichenfolge mit dem Muster eines bestimmten Datentyps übereinstimmt.

  • Wiederholen Sie diesen Vorgang, bis ein passendes Datentypmuster gefunden wird.

Beispiel

import java.util.regex.*;

public class DataTypeFinder {
   public static void main(String[] args) {
      String userInput = "42.5"; // Example user input
        
      // Define regex patterns for data types
      String integerPattern = "\d+";
      String floatPattern = "\d+\.\d+";
      String stringPattern = "[a-zA-Z]+";

      // Compile the patterns
      Pattern integerRegex = Pattern.compile(integerPattern);
      Pattern floatRegex = Pattern.compile(floatPattern);
      Pattern stringRegex = Pattern.compile(stringPattern);

      // Create Matcher objects for each pattern
      Matcher integerMatcher = integerRegex.matcher(userInput);
      Matcher floatMatcher = floatRegex.matcher(userInput);
      Matcher stringMatcher = stringRegex.matcher(userInput);

      // Check for matches
      if (integerMatcher.matches()) {
         System.out.println("Input is an integer.");
      } else if (floatMatcher.matches()) {
         System.out.println("Input is a float.");
      } else if (stringMatcher.matches()) {
         System.out.println("Input is a string.");
      } else {
         System.out.println("Unable to determine the data type.");
      }
   }
}

Ausgabe

Input is a float.
Die chinesische Übersetzung von

Erklärung

lautet:

Erklärung

Bei diesem Ansatz erstellen wir separate reguläre Ausdrucksmuster für jeden Datentyp, den wir erkennen möchten: Ganzzahlen, Gleitkommazahlen und Zeichenfolgen. Diese Muster werden mithilfe der Pattern-Klasse kompiliert.

Wir vergleichen dann Matcher-Objekte für jedes Muster und übergeben die Kundeneingabezeichenfolge an jeden Matcher. Wir verwenden die Methode „matches()“, um zu prüfen, ob die Eingabezeichenfolge mit dem Muster eines bestimmten Datentyps übereinstimmt.

Wenn eine Koordinate gefunden wird, drucken wir die Sortierung der Vergleichsinformationen aus. Andernfalls, wenn die Koordinaten nicht gefunden werden, geben wir eine Fehlermeldung aus, dass der Datentyp nicht bestimmt werden kann.

Methode 2

Algorithmus

  • Verwenden Sie den OR-Operator (|), um Muster aller Datentypen in einem regulären Ausdrucksmuster zu kombinieren.

  • Verwenden Sie den Musterklassen-Kompilierungsmodus.

  • Erstellt ein Matcher-Objekt unter Verwendung des kompilierten Musters und der Benutzereingabezeichenfolge.

  • Verwenden Sie die Methode „matches()“ der Klasse „Matcher“, um zu prüfen, ob die Eingabezeichenfolge mit einem Datentypmuster übereinstimmt.

Beispiel

import java.util.regex.*;

public class DataTypeFinder {
   public static void main(String[] args) {
      String userInput = "42.5"; // Example user input
        
      // Define regex pattern for all data types
      String dataTypePattern = "\d+|\d+\.\d+|[a-zA-Z]+";

      // Compile the pattern
      Pattern regex = Pattern.compile(dataTypePattern);

      // Create a Matcher object
      Matcher matcher = regex.matcher(userInput);

      // Check for matches
      if (matcher.matches()) {
         System.out.println("Input is of a recognized data type.");
      } else {
         System.out.println("Unable to determine the data type.");
      }
   }
}

Ausgabe

Input is of a recognized data type.
Die chinesische Übersetzung von

Erklärung

lautet:

Erklärung

Bei dieser Methode verwenden wir den OR-Operator (|), um ein einzelnes reguläres Ausdrucksmuster zu erstellen, das Muster aus allen Datentypen kombiniert. Auf diese Weise können wir jedes Muster mit der vom Benutzer eingegebenen Zeichenfolge abgleichen.

Wir verwenden die Design-Klasse, um das Design zu kompilieren und mithilfe des kompilierten Designs und der Kundeneingabezeichenfolge ein Matcher-Objekt zu erstellen. Anschließend verwenden wir die Methode „matches()“ des Matcher-Objekts, um zu prüfen, ob die Eingabezeichenfolge mit einem Datentypmuster übereinstimmt.

Wenn die Koordinaten gefunden werden, drucken wir eine Meldung aus, die angibt, dass es sich bei der Eingabe um einen erkannten Informationstyp handelt. Wenn die Koordinaten nicht gefunden werden, geben wir außerdem eine Fehlermeldung aus, die besagt, dass der Datentyp nicht bestimmt werden kann.

Methode 3

Algorithmus

  • Erstellen Sie ein reguläres Ausdrucksmuster, um nach bestimmten Mustern zu suchen, die jedem Datentyp zugeordnet sind.

  • Verwenden Sie den Musterklassen-Kompilierungsmodus.

  • Verwenden Sie die Methode find() der Matcher-Klasse, um herauszufinden, ob in der Benutzereingabezeichenfolge ein Datentypmuster vorhanden ist.

Beispiel

import java.util.regex.*;

public class DataTypeFinder {
   public static void main(String[] args) {
      String userInput = "42.5"; // Example user input
        
      // Define regex pattern for each data type
      String integerPattern = "\d+";
      String floatPattern = "\d+\.\d+";
      String stringPattern = "[a-zA-Z]+";

      // Compile the patterns
      Pattern integerRegex = Pattern.compile(integerPattern);
      Pattern floatRegex = Pattern.compile(floatPattern);
      Pattern stringRegex = Pattern.compile(stringPattern);

      // Create Matcher objects for each pattern
      Matcher integerMatcher = integerRegex.matcher(userInput);
      Matcher floatMatcher = floatRegex.matcher(userInput);
      Matcher stringMatcher = stringRegex.matcher(userInput);

      // Check for matches
      if (integerMatcher.find()) {
         System.out.println("Input contains an integer.");
      }
      if (floatMatcher.find()) {
         System.out.println("Input contains a float.");
      }
      if (stringMatcher.find()) {
         System.out.println("Input contains a string.");
      }
      if (!integerMatcher.find() && !floatMatcher.find() && !stringMatcher.find()) {
         System.out.println("Unable to determine the data type.");
      }
   }
}

Ausgabe

Input contains an integer.
Input contains a float.
Die chinesische Übersetzung von

Erklärung

lautet:

Erklärung

Bei diesem Ansatz erstellen wir separate reguläre Ausdrucksmuster für jeden Datentyp und kompilieren sie mithilfe der Pattern-Klasse.

Wir vergleichen dann Matcher-Objekte für jedes Muster und übergeben die Kundeneingabezeichenfolge an jeden Matcher. Anstelle der Methode „matches()“ verwenden wir die Methode „find()“ der Klasse „Matcher“, um das Vorhandensein eines beliebigen Datentypmusters in der Eingabezeichenfolge zu ermitteln.

Wenn die Koordinaten gefunden werden, drucken wir eine Meldung aus, die angibt, dass die Eingabe eine Vergleichsinformationskategorie enthält. Wenn für ein Datenreihenfolge-Design keine Koordinaten gefunden werden, geben wir eine Fehlermeldung aus, die besagt, dass die Datenreihenfolge nicht ermittelt werden kann.

Methode 4

Algorithmus

  • Erstellen Sie ein reguläres Ausdrucksmuster, um nach bestimmten Mustern zu suchen, die jedem Datentyp zugeordnet sind.

  • Verwenden Sie den Musterklassen-Kompilierungsmodus.

  • Verwenden Sie die find()-Methode der Matcher-Klasse, um herauszufinden, ob jedes Datentypmuster in der Benutzereingabezeichenfolge vorhanden ist.

  • Speichern Sie den gefundenen Datentyp zur weiteren Verarbeitung in einer Variablen.

示例

import java.util.regex.*;

public class DataTypeFinder {
   public static void main(String[] args) {
      String userInput = "42.5"; // Example user input
        
      // Define regex pattern for each data type
      String integerPattern = "\d+";
      String floatPattern = "\d+\.\d+";
      String stringPattern = "[a-zA-Z]+";

      // Compile the patterns
      Pattern integerRegex = Pattern.compile(integerPattern);
      Pattern floatRegex = Pattern.compile(floatPattern);
      Pattern stringRegex = Pattern.compile(stringPattern);

      // Create Matcher objects for each pattern
      Matcher integerMatcher = integerRegex.matcher(userInput);
      Matcher floatMatcher = floatRegex.matcher(userInput);
      Matcher stringMatcher = stringRegex.matcher(userInput);

      // Check for matches and store the found data type
      String dataType = "";
      if (integerMatcher.find()) {
         dataType = "integer";
      }
      if (floatMatcher.find()) {
         dataType = "float";
      }
      if (stringMatcher.find()) {
         dataType = "string";
      }

      // Process the found data type
      if (!dataType.isEmpty()) {
         System.out.println("Input is of data type: " + dataType);
      } else {
         System.out.println("Unable to determine the data type.");
      }
   }
}

输出

Input is of data type: float

Explanation

的中文翻译为:

解释

在这种方法中,我们为每种数据类型创建单独的正则表达式模式,并使用 Pattern 类对其进行编译。

我们然后对每个模式进行Matcher对象的比较,将客户输入的字符串传递给每个matcher。再次使用Matcher类的find()方法来查找输入字符串中每个数据类型模式的存在。

在找到匹配项的情况下,我们将相应的数据类型存储在一个名为dataType的变量中。在处理完所有的模式后,我们检查dataType变量是否为空。如果不为空,我们打印一条消息显示找到的数据类型。如果dataType变量为空,我们打印一条错误消息,显示无法确定数据类型。

结论

决定客户端输入的信息类型是许多 Java 应用程序的一个重要方面。正则表达式提供了一种强大的方法来识别字符串中的模式并有效地确定数据类型。在本文中,我们探索了使用 Java 中的正则表达式查找用户输入的数据类型的不同方法。

Das obige ist der detaillierte Inhalt vonFinden Sie den Datentyp der Benutzereingabe mithilfe eines regulären Ausdrucks in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen