前提・実現したいこと
以下のロジックを実行して、7Caaad9をインプットとして入力した場合は、
Invalid3が出力されるようにしたいのですが、正しく動作しません。
やりたいことは同じ文字列が3つ以上連続した場合、Invalid3としたいです。
line.matches(d)の書き方が悪いようで、常にtrueで判定されてInvalid3となってしまいます。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String a = "^[0-9]+$";
String b = "^[a-zA-Z]+$";
String c = "^[0-9a-zA-Z]+$";
String d = "^[0-9a-zA-Z]{3,}$";
if (line.length() < 6 || line.matches(a) || line.matches(b)) { System.out.println("Invalid"); return; } else if(!line.matches(c)){ System.out.println("Invalid2"); return; } else if(line.matches(d)){ System.out.println("Invalid3"); return; } System.out.println("Valid"); }
}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/25 10:35