Tách số tự nhiên trong chuỗi ngẫu nhiên

Chào mọi người
Ví dụ tôi nhập chuỗi ngẫu nhiên :ajsdkjh12837hdqh8923yehwđ823327uash
thì có cách nào tách các số tự nhiên trong chuỗi đã nhập ra không ?
Tôi chỉ học python được 2 tuần, tự nhiên nghĩ ra cái đề này rồi kẹt ở đây luôn rồi. Mong được chỉ giáo ?
Cảm ơn mọi người!

chạy vòng lặp, rồi lấy từng kí tự check, có thì bỏ nó vào 1 cái mảng là được. Dùng hàm isdigit() để check

4 Likes

Thuật toán bài này tương tự với topic bên dưới :

3 Likes
my_string = ':ajsdkjh12837hdqh8923yehwđ823327uash'

# Conver string --> list
my_list = list(my_string)

# duyệt từng phần tử trong list
for item in my_list:
	# Kiểm tra xem có phải là số không ..
	if item.isdigit():

		# phải thì in ra
		print(item)

Đối với Python, khi làm những task đơn giản, việc search trên google rất dễ, gì cũng có hết
Ví dụ, dzô gúc-le và search:
python convert word to list
python convert string to list
python check if number

hay thậm chí là
python check if digit in string (tức câu hỏi của topic này) cũng ra luôn

4 Likes

cảm ơn anh, em sẽ nghiền ngẫm :blush:

cảm ơn anh :sunny: :smiling_face_with_three_hearts:

Bên Java có hàm group() hỗ trợ làm việc này, bên python chắc cũng có hàm tương tự

String s = ":ajsdkjh12837hdqh8923yehwđ823327uash";
Matcher matcher = Pattern.compile("\\d+").matcher(s);
while (matcher.find()) {
	System.out.println(matcher.group());
}
3 Likes

mới học 2 tuần mà sao táng regex được =]]

5 Likes

chắc khó quá e bỏ qua quá :frowning:
nếu chuỗi thì nó không cho remove như list mà nhét chuỗi vô list như có anh ở trên hướng dẫn em làm k đc, nếu check chuỗi thì nó chạy cái sau kèm cái trước luôn á, thí dụ 15e13 thì nó chỉ lấy 1 với 15 tới e cái xem như nó bỏ mấy khúc sau. còn nhét vô list thì nó xem như 1 phần tử rồi tách ra như anh e tách hổng đc :frowning:

e mới 2 tuần nhìn code a e hổng hiểu j lun á :laughing:

Cái này gọi là biểu thức chính quy, mới thử tìm trên stackoverflow có code python luôn đây.

2 Likes

Cũng có lí :smiley: ít ra cũng phải làm được password requirement mới tạm đủ :smiley: (j/k)

3 Likes

em xem mà cũng hổng hỉu j luôn chắc trình e chưa tới :mask:

Đẹp trai v mà bỏ cuộc sớm nhỉ. Đi làm diễn viên cho rồi. :smiling_imp:

Mấy bài đơn giản như này cần gì xài regex. @@

def sher(inStr):
    outStr = ''
    for i in inStr:
        if '0' <= i <= '9':
            outStr += i
    return outStr

print(sher(':ajsdkjh12837hdqh8923yehwđ823327uash'))
128378923823327

:point_up_2: Toàn kiến thức cơ bản nè. Lại bảo không. :question: :grey_question: :question:

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