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ị

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
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);
1 Like

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

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

1 Like

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

1 Like
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ỉ ?

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ỉ

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ỉ.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?