01/10/2018, 11:47

Xử lý chuỗi trong Java

Xin nhờ anh chị giúp

Em có chuỗi String a ;
a=input.nextLine()
xét nếu a có chữ số yêu cầu nhập lại ,
Vd dụ adsad12 >>> Có chứa số vui lòng nhập lại

Thì làm sao thưa anh chị

HK boy viết 13:51 ngày 01/10/2018

Mình không biết Java, mình đưa mã giả thôi nhé.

while (true):
    read(a)
    contain_digit = false
    for c in '0'..'9':
        if c in a:
            contain_digit = true
            break

    if contain_digit == false:
         break
Nguyễn Duy Hùng viết 13:52 ngày 01/10/2018
String a;
System.out.print("Nhap chuoi a: ");
do{
    a = new Scanner(System.in).nextLine();
    if(a.matches("(.)*(\\d)(.)*")){
        System.out.println("Nhap lai !");
    }else{
        break;
    }
}while(true);
Tí Lãng Tử viết 14:04 ngày 01/10/2018

String a;
System.out.print(“Nhap chuoi a: “);
do{
a = in.nextLine();
if(a.matches(”\d”)){
System.out.println(“Nhap lai !”);
}else{
break;
}
}while(true);

nó thoát vòng lặp dùng nhập số hay chữ bác ak`! thanks bác trước

Le Hoang Quan viết 13:55 ngày 01/10/2018

Của bạn nè

public static void main(String[] args) {
	Scanner in = new Scanner(System.in);
	String a;
	System.out.print("Nhap chuoi a: ");
	
	 
	 do {
		 a = in.nextLine();
		 if(a.matches("[a-zA-Z]+")){
		        break;
		    }else{
		    	System.out.println("Nhap lai a: ");
		    }
	 }while(true);
	System.out.println("Ban da nhap dung");
}

P/s: Mai mốt câu hỏi rõ ràng hơn tí nha

Tí Lãng Tử viết 13:49 ngày 01/10/2018

Thanks bác đây là điều rất tuyệt vời

Nguyen Kien viết 13:58 ngày 01/10/2018
import java.util.*;

public class Test {
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		String str = "";

		do {
			System.out.print("Enter str: ");
			str = scan.nextLine();
		} while(str.matches("[A-z]+") == false);

		scan.close();
	}
}

Tại sao anh không thu gọn RE vào nhỉ ?

Tí Lãng Tử viết 14:02 ngày 01/10/2018

gõ dấu ko cho , mình muốn gõ Nguyễn Văn A nó vẫn bảo nạp sai thì giải quyết sao a nhỉ

Quân viết 13:59 ngày 01/10/2018

vì nó chỉ chấp nhận chữ cái A-Z và a-z, ễ không thuộc khoảng này nên sai là đúng rồi
thay vì kiểm tra chỉ có chữ cái alphabet thì làm ngược lại, kiểm tra có hiện diện của số không.
Chuỗi regex cho vào match sẽ là \d+ và điều kiện check sẽ ngược lại với chuỗi [A-z]+
Mà sao bạn không tìm hiểu regex expression luôn nhỉ.

Bài liên quan
0