【发布时间】:2016-09-29 16:12:30
【问题描述】:
我需要获取 32 到 93 之间的 ASCII 字符并让它们返回 true 值,否则这些参数之外的任何其他字符都将返回 false 值。
public static boolean safeToUse(String plaintext) {
plaintext = plaintext.toUpperCase();
for (char i=1; plaintext.length(); i++);
(i >32 && i < 93);
return true;
else return false;
}
然后我有另一个文件,该文件采用此代码并吐出真假:
String plaintext;
plaintext = "!";
if (CryptoCode.safeToUse(plaintext)) {
System.out.println("Yay, it's a valid message to crypt!");
}
else {
System.out.println("Ooops.");
}
但我每次得到的唯一返回值是返回 true,无论它是否为 false。如果我将我的“返回真”值从第一个代码切换为“返回假”,每个答案都会吐出一个假值,无论它是否为真......
【问题讨论】:
-
safeToUse完全没有意义。你认为你应该循环什么? -
提示:1) 你可能想要
String.charAt()。 2) 调用toUpperCase()并忽略结果是没有意义的。请注意,字符串是不可变的。 -
您的 for 循环甚至没有考虑
plaintext参数。你应该阅读 Java - 你的循环总是以i == 1开头,因为它不在“安全”范围内,所以立即退出 -
for (char i=1; i>32 && i<93; i++);你希望它做什么? -
我不知道它会做什么,这是我第二周的课..我正在研究我已经展示过的示例以及我在互联网上可以找到的内容..跨度>