我的密码生成器正在生成Gamma符号和分数...我该如何解决?
它有时很好用,但有时它会生成Gamma符号和分数。 他们希望我提供更多详细信息,但这真的是......
我在想,也许我可以将数字的类型更改为int,但我并不十分自信会工作。
这只是为了好玩......我正在努力学习Java,而这篇文章是我正在玩的东西...... 您提供的任何帮助都会很棒! :-) 谢谢!
import java.util.Random;
public class PasswordGenerator
{
public static void main(String[] args)
{
int length = 10;
System.out.println(generatePswd(length));
}
static char[] generatePswd(int len)
{
System.out.println("Your Password:");
String charsCaps = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String chars = "abcdefghijklmnopqrstuvwxyz";
String nums = "0123456789";
String symbols = "!@#$%^&*_=+-/€.?<>)";
String passSymbols = charsCaps + chars + nums + symbols;
Random rnd = new Random();
char[] password = new char[len];
int index = 0;
for (int i = 0; i < len; i++)
{
password[i] = passSymbols.charAt(rnd.nextInt(passSymbols.length()));
}
return password;
}
}
答案 0 :(得分:2)
取出€
字符串中的symbols
。它不是ASCII字符,因此它被编码为UTF-8,但未在控制台上正确显示。
具体来说,€
是unicode字符U+20AC
,它以UTF-8编码为E2 82 AC
。标准DOS字符集(code page 437)将这些字节解释为字符Γé¼
。
为避免编码问题,您应该坚持使用可打印的ASCII字符(0x20到0x7E)。
答案 1 :(得分:1)
之所以会发生这种情况是因为您的lazy val router: Router = {
// add the prefix string in local scope for the Routes constructor
val prefix: String = "/"
val v1Routes = wire[v1.Routes]
wire[Routes]
}
符号是非ASCI。如果你的终端不支持unicode,它将显示为&#34;奇怪的&#34;。