Заменить в строке необходимые символы java

    String[] u_s = {":","*","?","<",">"};
    String file_name = "Name :d*?f<> file";
    String newfilename = null;

    for (String u_s_one : u_s) {

        if(file_name.contains(u_s_one)) {
            newfilename = file_name.replace(u_s_one,"-");
        }
    }
    
    System.out.println(new filename);

В идеале цикл должен определять есть ли в строке значения из массива и если есть заменять их на "-", не могу описать такую логику. Конечно можно это сделать не элегантно, много replace'ов, но хочется сделать правильно.

Пытаюсь получить вывод типа: Name -d--f-- file

ИТОГ:

String[] u_s = {":","*","?","<",">"};
String us2 = "[:*?<>]";
String file_name = "Name :d*?f<> file";
String newfilename = null;

for (String u_s_one : u_s) {

    if (file_name.contains(u_s_one)) {
        newfilename = file_name.replaceAll(us2, "-");
        break;
    }
}

System.out.println(newfilename);

Ответы (1 шт):

Автор решения: Кирилл Малышев
String file_name = "Name :d*?f<> file";
String newfilename = file_name.replaceAll("[:*?<>]", "-");
System.out.println(newfilename);
→ Ссылка