如何编写一种方法来识别以下语言中的单词

时间:2011-03-22 06:46:47

标签: java

我想开始说我是新人,需要帮助。

提示: 编写一个方法,public static boolean Language(String word),用于识别以下语言的单词:

{ a^n | n is a prime number }

如果输入“word”来自语言,则该方法返回true和false。

测试示例:

Input: aaa     true
Input: aaaaaaaa false
Input: aaaaaaa true
Input: a false
Input: aba false

感谢您的帮助和时间。

编辑:

好吧所以我对isPrime以及要输入的内容非常困惑,但此时我正处于isPrime(String word)并且编译在“boolean F = isPrime(word.length())”中给出了一个错误不能应用于(int)。

import java.io.*;
import java.util.*;

public class Homework_2F_2

{

public static void main(String args[])

{

Scanner keyboard = new Scanner(System.in);

System.out.print("Enter a word from language \"A\" ");

String word = keyboard.nextLine();

boolean D = isTrue(word);

if(D == false)  
System.out.println("This word is not part of the language");

boolean F = isPrime(word.length());

if(F == true && D == true)  
System.out.println("This word is part of the language");  
}

//Check for language Method  
public static boolean isTrue(String word)  
{  
if(word.length() == 1)  
return false;

for(int i = 0; i < word.length(); i++)

{  
if(word.charAt(i) != 'a')  
return false;  
}

return true;
}


//Method to find if word is prime  
public static boolean isPrime(String n)

{

}

}

3 个答案:

答案 0 :(得分:4)

我不确定您的具体问题是什么,但您可以先检查输入字符串的长度,看看它是否为素数。 (参见http://en.wikipedia.org/wiki/Primality_test)然后,检查字符串中的每个字符是否都是'a'。

答案 1 :(得分:1)

如果将问题分解为较小的问题,对您来说会更容易。根据输入,您需要执行以下任务:

  • 从输入中获取所有单词
  • 检查每个单词是否属于语言

更具体地说:

  • 获取输入(通过函数参数)
  • 使用空格分隔输入作为分隔符
  • 每个单词
    • 检查它是否只包含字母'a';如果没有,则返回false
    • 计算字符数
    • 检查字符数是否为prime number;如果没有,则返回false
  • 如果您的功能达到此点,请返回true

答案 2 :(得分:-2)

你去......

public static boolean Language(String word)
{
    if(word == null)
    {
        return false;
    }

    for(char c : word.toCharArray())
    {
        if(c != 'a')
        {
            return false;
        }
    }

    int len = word.length();

    if(len == 0 || len == 1)
    {
        return false;
    }

    for(int i = 2; i <= len - 1; i++)
    {
        if(len % i == 0)
        {
            return false;
        }
    }

    return true;
}