使用Java中的字符串根据特定要求接受密码
假设这个程序接受输入到一个字符串中,即密码。然后,程序检查以确保密码长度至少为8个字符,至少包含2位数字,并且仅包含字母和数字。我似乎无法获得至少两位数的正确计数方法,尽管从我所看到的情况来看,这种方法应该是可行的 这就是我得到的错误 线程“main”java.lang.StringIndexOutOfBoundsException中出现异常:字符串索引超出范围:10 位于java.lang.String.charAt(String.java:658) 位于Password.main(Password.java:35)使用Java中的字符串根据特定要求接受密码,java,string,Java,String,假设这个程序接受输入到一个字符串中,即密码。然后,程序检查以确保密码长度至少为8个字符,至少包含2位数字,并且仅包含字母和数字。我似乎无法获得至少两位数的正确计数方法,尽管从我所看到的情况来看,这种方法应该是可行的 这就是我得到的错误 线程“main”java.lang.StringIndexOutOfBoundsException中出现异常:字符串索引超出范围:10 位于java.lang.String.charAt(String.java:658) 位于Password.main(Passw
import java.util.*;
公共类密码{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
字符串s;
整数=0;
System.out.println(“输入密码(必须只包含字母和数字,”);
系统输出打印(“最少8个字符,至少两个数字):”;
s=input.nextLine();
而(1==1){
如果(s.长度()<8){
System.out.println(“密码太短”);
System.out.println(“输入格式正确的密码”);
s=input.nextLine();
继续;
}
如果(s.matches(“^[a-zA-Z0-9\]+$”){
}
否则{
System.out.println(“密码只能包含字母和数字”);
System.out.println(“输入格式正确的密码”);
s=input.nextLine();
继续;
}
int i;
for(i=0;i在for循环中,不应允许i
等于s.length()
for(i=0;i在for循环中,不应允许i
等于s.length()
for(i=0;i由于使用从0到长度的索引,此语句出现异常。请使用从0到
for (i = 0; i <= s.length(); i++){
if (Character.isDigit(s.charAt(i))){
numbers++;
}
}
for(i=0;i由于使用从0到长度的索引,此语句出现异常。请使用从0到
for (i = 0; i <= s.length(); i++){
if (Character.isDigit(s.charAt(i))){
numbers++;
}
}
for(i=0;iReplace for(i=0;iReplace for(i=0;i)作为注释,while(1==1)
可以是while(true)
。您是在问如何解决这个问题?还是在问是什么导致了这个错误。@a.R.S.或者,仅仅是while((S=input.nextLine()).length()<8)
,删除上一个下一行。请注意,while(1==1)
可以while(true)
。您是在问如何解决此问题?还是在问是什么导致错误。@a.R.S.或者,在删除上一个下一行的情况下,while((S=input.nextLine()).length()<8)
。
for (i = 0; i <= s.length(); i++){
if (Character.isDigit(s.charAt(i))){
numbers++;
}
}