Về random string trong java

mọi người cho mình hỏi, mình có 1 string ví dụ như “NguyenVanA”, mình muốn random lại vị trí, xáo trộn các phần tử kiểu như “ganAnNyeuV” chẳng hạn, ai có giải thuật nào ngắn gọn có thể giúp mình không ạ

tự viết đi, chỉ là đảo lộn thứ tự chữ cái thôi mà

1 Like

Mình có cái cách này. Dài và thủ công lắm

  • Tách từng char ra thành một mảng.
  • Tới từng chữ cái một. Random chọn 1 trong 2 giá trị True hoặc False. Nếu True thì swapcase cho char đó (xor với 32 cho nhanh). ‘a’ -> ‘A’, ‘A’ -> ‘a’
  • shuffle mảng đó. Nếu không có hàm hỗ trợ việc shuffle thì tự viết lấy một cái
1 Like

Google: Scramble String + < Ngôn ngữ Lập trình >

2 Likes

package try_chap1;

public class try_part2 {
public static void main(String[] arg){
String[] chu = {“a”,“b”,“c”,“d”,“e”,“f”,“g”,“h”,“t”,“u”,“o”,“p”,“q”,“r”,“y”,“i”,“x”,“w”}; // đổi các giá trị bên trong nếu bạn muốn
final int max = 17; // số lớn nhất
final int min = 0;// số nhỏ nhất
int range = (max - min) + 1;
int soan = (int)(Math.random() * range) + min; //Thuật toán sẽ tự động ra số bất kì từ 0-17;
System.out.println(chu[soan]);
}
}

dùng cái hàm rand() rồi % cho lenght chuỗi nếu trùng thì rand() tiếp ko trùng thì swap dễ mà swap rand() mấy lần tùy thích rand() lấy chỉ số nhé

Bài cả năm trước rồi giờ còn vào đào :smiley:

Đây là bài toán shuffle, dùng thuật toán này là được

Implement dễ cực.

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