我需要在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,无论其是否为假。如果我要切换我的&#34;返回true&#34;从第一个代码到&#34;返回false&#34;无论是否属实,每个答案都会吐出错误的值......
答案 0 :(得分:0)
我不确定你为什么要转换为大写,但如果你仍然需要这样做,你可以修改下面的示例代码。另外,我不确定你的陈述是否过滤是为了包括或排除32和93的边缘值。我将留下你的决定。
public static boolean safeToUse(String plaintext) {
for (int i = 0; i < plaintext.length(); i++)
{
char c = plaintext.charAt(i);
boolean valid = ( ((c >= 'a') && (c <= 'z')) ||
((c >= ' ') && (c <= ']')) ); // space is 32. right bracket is 93
if (valid == false)
{
return false;
}
}
return true;
}