gpt4 book ai didi

java - 功能分解Java

转载 作者:行者123 更新时间:2023-12-05 07:07:18 27 4
gpt4 key购买 nike

我的教授给我的作业打分,说它需要一种叫做功能分解的东西。这是什么以及在我的回文程序中它会是什么样子。

import java.util.Scanner;
public class Palindrome {

public static void main(String[] args) {
String word;
/**
* create scanner for input and ask user for phrase/word
*/
Scanner kb = new Scanner(System.in);
System.out.println("Enter a word to see if its a palindrome.");
word = kb.nextLine();

/**
* this just removes spaces. For a palindrome like "race car"
*/
String newWord = word.replace(" ", "");
/**
* this removes commas like in given lab examples
*/
String newWord1 = newWord.replace(",", "");

System.out.println(isPalindrome(newWord1));

}
/**
*
* @param word
* @return true or false
*/
public static boolean isPalindrome(String word) {
/**
* if the word is 1 or 2 characters long its automatically a palindrome
*/
if(word.length() == 0 || word.length() == 1) {
return true;
}
/**
* use recursion to keep checking the first and last characters of each substring until result
*/
if (word.charAt(0) == word.charAt(word.length() - 1)) {
return isPalindrome(word.substring(1, word.length() - 1));
}
return false;
}
}

作为一个简短的旁注,他说我需要为此准备 2 个 Java 文件。如果我所要做的只是创建一个方法,那么第二个 java 文件会是什么?我使用单独的文件来制作类、构造函数、继承等。当然我不需要为这样的小东西制作两个文件?无论如何,我在电子邮件中问过他,但如果你不知道也没关系。感谢您的时间。

最佳答案

您的教授只是希望您更好地模块化代码,使其更加结构化和可重用。听起来他还想在另一个文件中有一个单独的类来处理您的文本。

回文.java

import java.util.Scanner;

public class Palindrome {

public static String readWord() {
String word;
/**
* create scanner for input and ask user for phrase/word
*/
Scanner kb = new Scanner(System.in);
System.out.println("Enter a word to see if its a palindrome.");
word = kb.nextLine();

return word;

}

public static String parseWord (String word) {
/**
* this just removes spaces. For a palindrome like "race car"
*/
String newWord = word.replace(" ", "");
/**
* this removes commas like in given lab examples
*/
String newWord1 = newWord.replace(",", "");

return newWord1;
}

/**
*
* @param String word
* @return true or false
*/
public static boolean testPalindrome(String word) {
/**
* if the word is 1 or 2 characters long its automatically a palindrome
*/
if(word.length() == 0 || word.length() == 1) {
return true;
}
/**
* use recursion to keep checking the first and last characters of each substring until result
*/
if (word.charAt(0) == word.charAt(word.length() - 1)) {
return testPalindrome(word.substring(1, word.length() - 1));
}
return false;
}
}

主.java

public class Main {

public static void main(String[] args) {
String word = Palindrome.readWord();
newWord = Palindrome.parseWord(word);
System.out.println(Palindrome.testPalindrome(newWord));
}

注意程序的所有逻辑是如何移到 main 方法之外的。

在进行代码面试时,将算法分解为多个可重用函数是一种很好的做法,因为它向面试官表明您可以将问题分解为子问题并编写模块化代码。如果您需要在此过程中进行任何更改、替换方法或优化您的解决方案,它也会有所帮助。

在大型项目中,它将使您的代码更易于阅读、更易于修改和更易于调试,从而产生更好的代码和更高的整体效率。

关于java - 功能分解Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62207336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com