Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 测试指标与特征 charval; int-idx=1; 做{ if(PasswordGenerator.matchCharAt(val,idx)) System.out.println(“密码为”+密码); idx++; }idx_Java - Fatal编程技术网

Java 测试指标与特征 charval; int-idx=1; 做{ if(PasswordGenerator.matchCharAt(val,idx)) System.out.println(“密码为”+密码); idx++; }idx

Java 测试指标与特征 charval; int-idx=1; 做{ if(PasswordGenerator.matchCharAt(val,idx)) System.out.println(“密码为”+密码); idx++; }idx,java,Java,我假设测试character参数是否与密码中指定索引处的字符匹配。这可能有很多问题,因为我已经搞乱了两个小时 然后我需要将它们与stringbuilder附加在一起(我不担心这一点),并将字符显示在屏幕上(我也不担心这一点) 我不知道如何循环它们来检查0-127之间的ascii字母。所以我需要帮助来解决这个问题 用于密码生成器 我正在尝试获取密码,以便在我的密码中显示随机字母(至少我认为是这样)。这就是我用来获取密码长度的方法 char val; int idx = 1; do { if

我假设测试character参数是否与密码中指定索引处的字符匹配。这可能有很多问题,因为我已经搞乱了两个小时

然后我需要将它们与stringbuilder附加在一起(我不担心这一点),并将字符显示在屏幕上(我也不担心这一点)

我不知道如何循环它们来检查0-127之间的ascii字母。所以我需要帮助来解决这个问题

用于密码生成器

我正在尝试获取密码,以便在我的密码中显示随机字母(至少我认为是这样)。这就是我用来获取密码长度的方法

char val;
int idx = 1;
do {
    if (PasswordGenerator.matchCharAt (val, idx))
        System.out.println("The Password is " + password);
    idx++;
} while (idx < 127 );
int-length=0;
int MaxNumber=100;
StringBuilder密码=新建StringBuilder();
做{
if(PasswordGenerator.matchLength(长度))
System.out.println(“字符长度为“+长度”);
长度+++;//长度是随机选取的

}while(长度<最大数);//或者字符是一种基本类型-您可以像任何数字一样使用它进行迭代。例如:

int length=0;
int MaxNumber=100;
StringBuilder password = new StringBuilder();

do {
    if (PasswordGenerator.matchLength (length))
        System.out.println("The length of the character is " + length);
    length++;                     // length is randomly picked
} while (length < MaxNumber );   // or <100
for(字符c=Character.MIN\u值;c

在您的情况下,您可以根据给定的内容将值限制在0到127之间,但char实际上是一种数字类型。

听起来您需要将程序结构为嵌套在另一个循环中的循环。外部循环变量是要查找的下一个字符的索引。然后,内部循环在该位置搜索与密码字符匹配的字符。由于您不知道密码的实际长度,因此需要在找到
n
th字符且
n
与密码长度匹配后终止外循环

您可能需要这样的东西:

for (char c = Character.MIN_VALUE; c < Character.MAX_VALUE; c++) {
  // do stuff
}
PasswordGenerator密码=。。。
外部:
对于(int len=0;!password.matchLength(len);){
用于(字符c=0;c<128;++c){
if(密码匹配字符(c,len)){
//在索引len处找到匹配项--记录它
++len;
继续外部;//退出内部循环
}
//找不到索引len的任何匹配项--
//失败退出
}
//成功退出

通常我不喜欢使用语句标签,但这似乎是一个使用语句标签的自然场所。但是,您可以通过使用额外的标志变量或其他东西来摆脱它。

您到底想实现什么?为什么失败?看起来您从未设置/更新要检查的val。我认为这一个是没有希望的。那就是Javadoc说有一个静态方法可以将索引中的一个字符与“密码”匹配。什么密码?密码存储在哪里?为什么要使用静态方法来处理这样的事情?你听说过
String.charAt()吗
--或者
Object.equals
,就这一点而言?祝你们好运,伙计们。一颗宝石。我猜你们应该从用户(或者其他地方)的密码尝试中得到什么并将其与您保存在PasswordGenerator中的密码进行比较。不能将其用于此作业。必须使用讲师所说的内容。for循环:for(char c='a';c<'z';c++){}也是有效的。@ColinD如果你知道你将在a和z之间,小写:)但是是的,从0到127,这听起来像是我循环的一个很好的开始。
PasswordGenerator password = ...
OUTER:
for (int len = 0; !password.matchLength(len); ) {
    for (char c = 0; c < 128; ++c) {
        if (password.matchCharAt(c, len)) {
            // found the match at index len -- record it
            ++len;
            continue OUTER; // exit the inner loop
    }
    // no match at all found for index len --
    // exit with failure
}
// exit with success