Java
Script is disabled. For a better experience, please enable Java
Script in your browser before proceeding.

Bạn đang xem: Hàm kiểm tra chuỗi có phải là số hay không


*

Có nhiều phương pháp để kiểm tra, sau đó là các cách cơ bản.Kiểm tra String s
Data = "123";1. áp dụng try catch, tức là kiểm tra bằng phương pháp sử dụng Integer.parse
Int xem công dụng thế nào.
//Way 1 try Integer.parse
Int(s
Data); System.out.println("Way1 - Is a Number"); catch (Exception e) System.out.println("Way1 - Not a Number");
Đây là biện pháp dùng không tối ưu, phải cân xứng điều kiện, bạn cũng có thể dùng Integer hoặc Double thậm chí còn Long nhưng dữ liệu nhập vẫn có thể vượt giới hạn nên chỉ hoàn toàn có thể dùng khi bạn giới hạn được độ dài chuỗi nhập vào trước lúc đem soát sổ kiểu này.2. Kiểm soát từng cam kết tự vào chuỗi có phải là số tốt không
//Way3 Pattern pattern = Pattern.compile("\d*"); Matcher matcher = pattern.matcher(s
Data); if (matcher.matches()) System.out.println("Way3 - Is a Number"); else System.out.println("Way2 - Not a Number");
*
Reactions:minhhn0205, nguyen huu huu, thanhlikes09bkdn và 1 other person
*

Ðề: Kiểm tra chuỗi là chữ tốt số
Mình thì hay dùng regex phương pháp này khá hay mình thích nó à mà mẫu regex kiểm tra là số nguyên khu vực \d* buộc phải là \d+ chứ nhỉ? * là hoàn toàn có thể có hoặc không còn + là những mà nhỉ? trù trừ mình tất cả nhầm không nữa .
*

Ðề: Kiểm tra chuỗi là chữ hay số\d*\d+ đa số cho thuộc kết quả, Minh so sánh thêm về regex đi, viết một bài bác hướng dẫn đơn giản và dễ dàng cũng được.
*

Ðề: Kiểm tra chuỗi là chữ tuyệt sốMình cũng có một cách tương từ để kiểm soát số cũng sử dụng regex nhưng lại không đề xuất dùng tới Pattern và Matcher cơ mà dùng luôn luôn phương thức matches bao gồm sẵn của String với theo mình trong ngôi trường hợp kiểm soát 1 chuỗi có phải là số hay là không như gắng này thì dùng biện pháp này là nhanh và tiện nhất giải pháp của anh Jack
V
//Way3 Pattern pattern = Pattern.compile("\d*");//// \d+ giỏi \d* phần lớn được
Matcher matcher = pattern.matcher(s
Data); if (matcher.matches()) System.out.println("Way3 - Is a Number"); else System.out.println("Way2 - Not a Number");
if(s
Data.matches("\d+"))// \d+ tốt \d* đa số được System.out.println("Way3 - Is a Number");else System.out.println("Way2 - Not a Number");
Jack
V em có muốn viết lắm dẫu vậy mà em không biết mô tả như gắng nào để mọi người hiểu nói chính xác là ngôn ngữ của em còn tinh giảm nên cũng cạnh tranh quá. Hjx em sẽ nỗ lực

Ðề: Kiểm tra chuỗi là chữ tuyệt sốCái này hình như chỉ bắt đc kiểu int thôi hả " title="smug :>" data-shortname=":>" />
Uh tính năng này chỉ bắt kiểu dáng int còn nếu bạn có nhu cầu thì hoàn toàn có thể làm như sau để có thể bắt được cả phong cách float và số âm.Kiểu int có đồng ý số âm:
public static boolean check
Int
Number(String s) throws Exception try String regex = "(^-)*\d+"; if(s.matches(regex)) return true; else return false; catch(Exception ex) throw ex;
public static boolean check
Float
Number(String s) throws Exception try String regex = "(^-)*\d+(.\d+)*";//Vẫn có trường hòa hợp .5 tương tự 0.5 dẫu vậy mình chưa viết cái này :D if(s.matches(regex)) return true; else return false; catch(Exception ex) throw ex;
Đây là những function mình viết dùng làm kiểm tra dữ liệu nhập vào lúc làm bài bác tập tốt e
Project rất có thể có không đúng sót mong các bạn góp ý thêm.

Xem thêm: Nghe Yasuy Hát ' Nơi Tình Yêu Bắt Đầu ', Vietnam Idol 2015


Integer: ^-?\d+$Float: ^-?\d+\.\d+$Check Number phải check từ đầu String: ^ và hoàn thành String $Với regex \d* thì vẩn true cùng với "123a"
Trường hợp: Float: ^-?\d+\.\d+$
Số dạng float thì vẫn có thể không tất cả phần thập phân như khi người dùng nhập vào là 100 chẳng hạn thì núm nào bạn?
Trường hợp: cùng với regex \d* thì vẩn true với "123a"
chúng ta đã kiểm tra chưa?
\d*: là tìm ký kết tự số trong 1 chuổi (zero -> more)Dùng * để kiểm tra là thấy không đúng rồi(^-)*\d+: số âm chỉ có 1 - : -?, -* là zero --> more
Float ko . Check = regex thì khác gì Integer
Nói chung kiểm tra number thì kiểm tra dạng Integer.parse(num)... Là tốt nhất có thể vì mổi vẻ bên ngoài số còn qui định range của chính nó nửa, Integer: 4bit, Float: 8bit...Bạn sẽ test của chính bản thân mình chưa?
Mình ko nói của khách hàng sai nên chưa hẳn test. đo đắn bạn tất cả hiểu ý của check Float ko nữa? giờ có bài bác yêu cầu chúng ta nhập điểm của học viên điểm gồm kiểu float vậy các bạn sẽ check nỗ lực nào? bắt buộc phải nhập điểm có phần thập phân à? ko được nhập điểm không tồn tại phần thập phân? ví dụ điển hình 8 điểm thì phải nhập 8.0 à? các bạn vẫn phải cho những người ta nhập 8 chứ? trước khi nói thì chúng ta test vẫn nhé bản thân biết ý nghĩa của các dấu nhưng đề xuất xem viết ra làm sao nữa chứ. Ok?
Ðề: Kiểm tra chuỗi là chữ xuất xắc sốko hiểu sao bản thân ko thấy mấy cái bài xích post của công ty badboy gì đó
Nếu chúng ta vào coi, bạn lý giải cho mình hiểu lý do bạn lại nói " title="smug :>" data-shortname=":>" />
Ðề: quanh đó chữ và số thì còn ktra đc loại nào nữa ko
thế giả dụ mình muốn bắt lỗi 1 String chỉ bao gồm toàn chữ ( ko chứa số , ko chứa các kí tự quan trọng đặc biệt như - . #$%^^ *) thì làm cầm nào
Mà dòng này có thể áp dụng cho n~ trường thích hợp quái hơn hoàn toàn như là là bắt lỗi nhập thư điện tử phải bao gồm định dạng là abc
public static boolean check
Int
Number(String s) throws Exception try String regex = "(^-)*\d+"; if(s.matches(regex)) return true; else return false; catch(Exception ex) throw ex;
public static boolean check
Float
Number(String s) throws Exception try String regex = "(^-)*\d+(.\d+)*";//Vẫn tất cả trường hợp .5 tương tự 0.5 nhưng mà mình chưa viết tính năng này :D if(s.matches(regex)) return true; else return false; catch(Exception ex) throw ex;
Thật ra thì bản thân chả biết chiếc này. Toàn làm tuỳ thuộc ak . Kỳ trước học chuyên đề 1. Ông thầy bắt làm dòng calculator như thể y mặt win. Rồi ông xoắn đầy đủ chỗ. Ví như biết mấy đặc điểm này chắc đời đỡ khổ
import java.util.Scanner;// Viết trương trình chuyển đổi chuỗi số thanh lịch sốpublic class KBai9 public KBai9() // TODO Auto-generated constructor stub public static boolean Special
Char(String str) char i; for(i=32; i for(int j=0; j str.char
At(j) == 46) return true; if(str.char
At(j) == i) return false; for(i=58; i for(int j=0; j if(str.char
At(j) == i) return false; return true; public static boolean is
Number(String str) int tmp = 0; for(int i=0; i if(tmp>1) return false; else return true; public static void main(String<> args) // TODO Auto-generated method stub
Suppress
Warnings("resource") Scanner kboard = new Scanner(System.in); System.out.print("Nhap vao mot chuoi: "); String str = kboard.next
Line(); boolean t = is
Number(str); if(t == false) System.out.print("Chuoi nhap vao khong phai la chuoi so"); else float a = (Float.value
Of(str)).float
Value(); System.out.println("Da chuyen doi chuoi sang so: " + a); System.out.println(Math.to
Degrees((double)("s" + 6 * 93))); // bài này bản thân tự làm chứ ko đem ở bất cứ nguồn nào không còn nha..!
Chủ đề19,764Bài viết52,021 Unanswered questions38Answered questions1Thành Viên16,863Thành viên new nhấtbit0_programmer

Kết luận: Trường phù hợp mà kết hợp được với xúc tích của áp dụng thì áp dụng filter_var. đều trường phù hợp còn lại, sử dụng giống như như validation của Cake
PHP.

*

is_numeric

là hàm áp dụng để kiểm tra có yêu cầu là số hay không (không chỉ số nguyên). Ko chỉ check được hồ hết số nhỏ mà cả rất nhiều số vượt vượt mức giới hạn của PHP cũng đều có thể check được
Tuy nhiên đây không phải hàm phù hợp ở phương diện kiểm tra số nguyên

assert(is_numeric("0"));assert(is_numeric("1"));assert(is_numeric("1 ") === false); // 1 với spaceassert(is_numeric("a") === false);assert(is_numeric("0.0"));assert(is_numeric(".123"));assert(is_numeric("123."));assert(is_numeric("-1"));assert(is_numeric("-1.0"));assert(is_numeric("+1"));assert(is_numeric("+1.0"));assert(is_numeric("042")); // hệ cơ số 8assert(is_numeric("08")); // 0 cho 10 hệ cơ số「8」assert(is_numeric("1e2")); // hiển thị 100assert(is_numeric("1.001e2")); // hiên thị 100.1assert(is_numeric("1e+2")); // hiển thị 100assert(is_numeric("1e-2")); // biểu hiện 0.01assert(is_numeric("0x
Tuy nhiên, đây cũng không phải hàm thích hợp ở phương diện check số nguyên

Tuy nhiên, filter_var có thuộc tính trim sẽ thải trừ khoảng white ‘1 ’ đang trả về int(1)

assert(filter_var("0", FILTER_VALIDATE_INT) === 0);assert(filter_var("A", FILTER_VALIDATE_INT) === false);Ngoải ra cũng đồng ý trường thích hợp thêm + vào như string("+1”). Nếu như muốn tường bản thân thì có thể sử dụng strpos để check

assert(filter_var("1 ", FILTER_VALIDATE_INT) === 1);Tương tự đối với việc áp dụng validate của Laravel

TIếp Theo là lấy một ví dụ về filter_var

assert(filter_var("+1", FILTER_VALIDATE_INT) === 1);Cake
PHP3 Validate
Cake
PHP3 đã gồm hàm check số nguyên sẽ là method CakeValidationValidation::is
Integer()Tuy nhiên không check được cho trường thích hợp hệ cơ số 8 hay là PHP_MAX_INT chính vì thế nên tránh áp dụng hàm này nhằm validate

$filter_var = function (string $value): bool return filter_var($value, FILTER_VALIDATE_INT) !== false;;assert($filter_var("0"));assert($filter_var("1"));assert($filter_var("1 ")); // 1 với spaceassert($filter_var("a") === false);assert($filter_var("0.0") === false);assert($filter_var(".123") === false);assert($filter_var("123.") === false);assert($filter_var("-1"));assert($filter_var("-1.0") === false);assert($filter_var("+1"));assert($filter_var("+1.0") === false);assert($filter_var("042") === false); // hệ cơ số 8assert($filter_var("08") === false); // 0 đén 10 ở hệ cơ số「8」assert($filter_var("1e2") === false); // biển cả thị 100assert($filter_var("1.001e2") === false); // bộc lộ 00.1assert($filter_var("1e+2") === false); // thể hiện 100assert($filter_var("1e-2") === false); // biểu hiện 0.01assert($filter_var("0x

assert(intval("0") === 0);assert(intval("1") === 1);assert(intval("1 ") === 1); // 1 với spaceassert(intval("a") === 0);assert(intval("0.0") === 0);assert(intval(".123") === 0);assert(intval("123.") === 123);assert(intval("-1") === -1);assert(intval("-1.0") === -1);assert(intval("+1") === 1);assert(intval("+1.0") === 1);assert(intval("042") === 42); // hệ cơ số 8assert(intval("08") === 8); // 0 mang đến 10 ngơi nghỉ hệ cơ số「8」assert(intval("1e2") === 100); // biểu thị 100assert(intval("1.001e2") === 100); // biểu thị 100.1assert(intval("1e+2") === 100); // bộc lộ 100assert(intval("1e-2") === 0); // biểu lộ 0.01assert(intval("0x