Como detectar caracteres especiais em um texto de edição e exibir um Toast em resposta (Android)?

Um pedido de desculpas pelo meu mau inglês, estou usando o google translate.

Estou criando uma atividade na qual os usuários devem criar um novo perfil. Eu coloquei um limite para editar o texto de 15 caracteres e eu quero que, se o novo nome do perfil tiver espaços ou caracteres especiais, exiba um aviso. Como video games online

O código a seguir me ajuda a detectar espaços, mas não caracteres especiais.

Preciso de ajuda para identificar caracteres especiais e exibir um aviso em resposta.

@Override
public void onClick(View v) {
    //Convertimos el contenido en la caja de texto en un String
    String nombre = nombreUsuario.getText().toString();

    //Si el tamaño del String es igual a 0, que es es lo mismo que dijeramos "Si esta vacio"
    if (nombre.length() == 0) {
        //Creamos el aviso
        Toast aviso = Toast.makeText(getApplicationContext(), "Por favor introduce un nombre de Usuario", Toast.LENGTH_LONG);
        aviso.show();

    } else if (nombre.contains(" ") | nombre.contains("\\W")) {
        Toast aviso = Toast.makeText(getApplicationContext(), "No son permitidos los espacios ni los caracteres especiales", Toast.LENGTH_LONG);
        aviso.show();
    } else {
        nombre = nombreUsuario.getText().toString();
        //Conectamos con la base de datos
        //Creamos un bojeto y lo iniciamos con new
        Plantilla entrada = new Plantilla(CrearUsuarioActivity.this);
        entrada.abrir();

        //creamos un metodo para escribir en la base de datos (crear entradas)
        entrada.crearEntrada(nombre);
        entrada.cerrar();
    }
}

questionAnswers(6)

yourAnswerToTheQuestion