我必须让我的方法读取字符串是否有空格,如果是,它会进入下一步,即查看字符串中是否包含字母或数字1到5。
以下是指示中说明的内容:此方法应检查其参数,以查看它是否在位置5,11,17,23等处有空格,如果它由字母和数字1到5组成在所有其他位置。如果是这种情况,它应该返回true,否则返回false。
这是我得到的错误:
Enc1.java:41: error: no suitable method found for length(int)
if(s.indexOf(s.length(i)) == -1 || i > 5 || i < 1)
^
method CharSequence.length() is not applicable
(actual and formal argument lists differ in length)
method String.length() is not applicable
(actual and formal argument lists differ in length)
以下是代码:
import java.util.Scanner;
public class Enc1
{
public static void main(String[] args)
{
Scanner stdin = new Scanner(System.in);
String c1 = args[0];
System.out.println("Please insert a word: ");
c1 = stdin.next();
isCoded(c1);
} // end main
private static final String CODE1 = "HTNZUL5m3lDQchenpIuORws1jPgVtzKWbfBxXSArdayCJkvqGiF2YoM4E" ;
private static final String PLAIN = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ,.;:" ;
public static String encode(String message)
{
System.out.println("encode called");
return message;
} // end encode
public static String decode(String codedMessage)
{
System.out.println("decode called");
return codedMessage;
} // end decode
public static boolean isCoded(String s)
{
for( int i = 0; i < s.length(); ++i)
{
if( i % 6 == 5 && s.charAt(i) != ' ')
return false;
if(s.indexOf(s.length(i)) == -1 || i > 5 || i < 1)
return false;
}
} // end isCoded
} // end Enc1
答案 0 :(得分:2)
错误消息告诉你究竟出了什么问题 - 长度方法没有参数 - 所以做明显的解决方案并解决它:摆脱错误的调用。
更改
if(s.indexOf(s.length(i)) == -1 || i > 5 || i < 1)
到
if(s.indexOf(s.charAt(i)) == -1 || i > 5 || i < 1)