In Java stellt sich bei der Verarbeitung komplexer Ausdrücke die Frage nach der Identifizierung von Ganzzahlen innerhalb eines String-Arrays. Hier untersuchen wir Methoden, um festzustellen, ob ein bestimmter String als Ganzzahl qualifiziert ist.
Ein naiver Ansatz besteht darin, den String zu durchlaufen und zu überprüfen, ob jedes Zeichen eine gültige Ziffer ist die angegebene Basis. Dadurch wird sichergestellt, dass jedes Element geprüft wird. Aus praktischen Gründen bietet es jedoch eine optimale Effizienz:
public static boolean isInteger(String s) { return isInteger(s, 10); } public static boolean isInteger(String s, int radix) { if (s.isEmpty()) { return false; } for (int i = 0; i < s.length(); i++) { if (i == 0 && s.charAt(i) == '-') { if (s.length() == 1) { return false; } else { continue; } } if (Character.digit(s.charAt(i), radix) < 0) { return false; } } return true; }
Alternativ bietet die Java-Bibliothek einen ausnahmefreien Mechanismus:
public static boolean isInteger(String s, int radix) { Scanner sc = new Scanner(s.trim()); if (!sc.hasNextInt(radix)) { return false; } // Ensures there's no remaining data after extracting the integer sc.nextInt(radix); return !sc.hasNext(); }
Für diejenigen mit einem unbeschwerten Ansatz: Die folgende fragwürdige Technik verwendet eine Ausnahme Handhabung:
public static boolean isInteger(String s) { try { Integer.parseInt(s); } catch (NumberFormatException | NullPointerException e) { return false; } // Success if no exceptions occurred return true; }
Zusammenfassend lässt sich sagen, dass die Bestimmung, ob ein String in Java eine Ganzzahl darstellt, eine sorgfältige Abwägung der Effizienz und des Implementierungsstils erfordert. Die besprochenen Methoden bieten Ihnen mehrere Optionen, die auf unterschiedliche Szenarien zugeschnitten sind.
Das obige ist der detaillierte Inhalt vonWie kann ich effizient feststellen, ob ein Java-String eine Ganzzahl darstellt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!