首頁  >  文章  >  Java  >  在Java中使用正規表示式尋找使用者輸入的資料類型

在Java中使用正規表示式尋找使用者輸入的資料類型

WBOY
WBOY轉載
2023-09-14 22:33:061153瀏覽

在Java中使用正規表示式尋找使用者輸入的資料類型

在 Java 程式設計中,確定客戶端輸入的資訊類型可能是一項常見任務,特別是在建立需要資訊核准或處理的應用程式時。正規表示式或正規表示式是識別字串設計、計算資訊類別的有效工具。本文將研究利用 Java 中的標準表達式來尋找客戶端輸入的資訊類型的獨特方法。

文法

Java 中正規表示式的語言結構是基於 java.util.regex 套件。它提供了 Design 和 Matcher 等類別來處理正規表示式設計並執行協調操作。

語法說明

要在Java中使用正規表示式,我們首先需要使用Design類別建立一個正規表示式模式。此模式表示我們需要匹配的所需模式。我們將使用正規表示式中的各種預定義字元和運算符來定義模式。

一旦設計被確定,我們透過在設計上呼叫matcher()策略來建立一個Matcher問題。 Matcher允許我們將設計應用於特定的輸入字串並執行協調操作。

方法一

演算法

  • 為每種資料類型(例如整數、浮點數、字串等)建立正規表示式模式。

  • 使用Pattern類別來編譯正規表示式模式。

  • 使用編譯的模式和使用者輸入字串建立 Matcher 物件。

  • 使用Matcher類別的matches()方法檢查輸入字串是否與特定資料類型的模式相符。

  • 重複這個過程,直到找到符合的資料類型模式。

範例

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.");
      }
   }
}

輸出

Input is a float.

Explanation

的中文翻譯為:

解釋

在這個方法中,我們為要識別的每種資料類型建立單獨的正規表示式模式:整數、浮點數和字串。這些模式是使用 Pattern 類別編譯的。

我們接著為每個模式比較Matcher對象,將客戶輸入字串傳遞給每個匹配器。我們使用matches()方法來檢查輸入字串是否與特定資料類型的模式相符。

如果找到了一個座標,我們列印比較資訊排序。否則,如果沒有找到座標,我們會列印一個錯誤訊息,顯示無法確定資料類型。

方法二

演算法

  • 使用OR(|)運算子將所有資料類型的模式組合成一個正規表示式模式。

  • 使用 Pattern 類別編譯模式。

  • 使用編譯的模式和使用者輸入字串建立 Matcher 物件。

  • 使用Matcher類別的matches()方法來檢查輸入字串是否與任何資料類型模式相符。

範例

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.");
      }
   }
}

輸出

Input is of a recognized data type.

Explanation

的中文翻譯為:

解釋

在這個方法中,我們使用OR(|)運算子建立一個單一的正規表示式模式,將所有資料類型的模式組合在一起。這樣我們就可以將任何一個模式與使用者輸入的字串進行比對。

我們使用Design課程編譯設計,並使用編譯後的設計和客戶輸入字串建立Matcher物件。然後,我們使用Matcher物件的matches()方法來檢查輸入字串是否與任何資料類型模式相符。

如果找到座標,我們會列印一則訊息,表示輸入是可識別的訊息類型。另外,如果沒有找到座標,我們會列印錯誤訊息,表示無法確定資料類型。

方法三

演算法

  • 建立一個正規表示式模式來檢查與每種資料類型關聯的特定模式。

  • 使用 Pattern 類別編譯模式。

  • 使用 Matcher 類別的 find() 方法來尋找使用者輸入字串中是否存在任何資料類型模式。

範例

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.");
      }
   }
}

輸出

Input contains an integer.
Input contains a float.

Explanation

的中文翻譯為:

解釋

在這種方法中,我們為每種資料類型建立單獨的正規表示式模式,並使用 Pattern 類別對其進行編譯。

我們隨後為每個模式比較Matcher對象,將客戶輸入字串傳遞給每個匹配器。我們不使用matches()方法,而是使用Matcher類別的find()方法來尋找輸入字串中任何資料類型模式的存在。

如果找到座標,我們會列印一則訊息,表示輸入包含比較資訊類別。如果沒有找到任何資料排序設計的座標,我們會列印錯誤訊息,表示無法確定資料排序。

方法4

演算法

  • 建立一個正規表示式模式來檢查與每種資料類型關聯的特定模式。

  • 使用 Pattern 類別編譯模式。

  • 使用 Matcher 類別的 find() 方法來尋找使用者輸入字串中是否存在每種資料類型模式。

  • 將找到的資料類型儲存在變數中以供進一步處理。

示例

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 中的正则表达式查找用户输入的数据类型的不同方法。

以上是在Java中使用正規表示式尋找使用者輸入的資料類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除