'Change all letters except space from a string using Java

I want to change all letters from a string to "-" char except space using Java.

I tried:

String out = secretWord.replaceAll("^ " , "-");

and

String out = secretWord.replaceAll("\\s" , "-");

They didn't work.

I tried:

String newWord = secretWord.replaceAll("[A-Z]" , "-");

It worked but i didn't change Turkish characters I use in that string.

Original Code:

public class ChangeToLine {

    public static void main(String[] args) {
    
        String originalWord = "ABİDİKUŞ GUBİDİKUŞ";
        String secretWord = originalWord;
    }
}


Solution 1:[1]

Use a character class

String out = secretWord.replaceAll("[^ ]" , "-");

or a capital S, instead of a lower s to replace all non space chars

String out2 = secretWord.replaceAll("\\S" , "-");

Solution 2:[2]

NOT needs to be expressed in square brackets in java.util.regex.Pattern:

String out = secretWord.replaceAll("[^\\s]", "-")

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Eritrean
Solution 2 rowing-ghoul