我试图让我的方法来检查参数时遇到错误

时间:2015-10-22 16:43:05

标签: java boolean

我必须让我的方法读取字符串是否有空格,如果是,它会进入下一步,即查看字符串中是否包含字母或数字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

1 个答案:

答案 0 :(得分:2)

错误消息告诉你究竟出了什么问题 - 长度方法没有参数 - 所以做明显的解决方案并解决它:摆脱错误的调用。

更改

if(s.indexOf(s.length(i)) == -1 || i > 5 || i < 1)

if(s.indexOf(s.charAt(i)) == -1 || i > 5 || i < 1)