How to use Pattern and Matcher? [duplicate]

This question already has an answer here:

I have two simple questions about Pattern.

First one is reading the given name(s) and surname. I need to tell whether they contain numbers or punctuation characters. If not, it’s a valid name. Whatever I input, the output is

This is not a valid name.

What am I doing wrong?

Scanner input = new Scanner(;
System.out.print("Enter: ");
String name =;

Pattern p = Pattern.compile("[A-Za-z]");
Matcher m = p.matcher(name);
boolean n = m.matches();

if (n == true) {
else {
   System.out.println("This is not a valid name.");

The second question: I read a list of salary amounts that start with a dollar sign $ and followed by a non-negative number, and save the valid salaries into an array. My program can output an array, but it can’t distinguish $.

Scanner sc = new Scanner(;
System.out.print("Enter Salary: ");
String salary = sc.nextLine();

Pattern pattern = Pattern.compile("($+)(\\d)");
Matcher matcher = pattern.matcher(salary);
String[] slArray=pattern.split(salary);

How to use Pattern and Matcher? [duplicate]