gpt4 book ai didi

java - 无法从 void 转换为 char

转载 作者:行者123 更新时间:2023-11-30 05:56:27 25 4
gpt4 key购买 nike

我刚刚开始使用 Java 编程,所以我仍然是一个菜鸟。我试图检查一个句子是否包含特定单词。这是我的代码:

public static void run(String sentence) {

System.out.print("Please provide a string");

Scanner sc = new Scanner(System.in);

String str1 = sc.next();

if(str1.contains("Andy")) {
System.out.print("V");
}
else {
System.out.print("X");
}

}

我必须运行以下测试:

import org.junit.Test;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

public class Assignment1_3Test {

@Test
public void runTestOnlyAndy() {
char output = Assignment1_3.run("Andy");
assertEquals('V', output);
}

@Test
public void runTestNoAndy() {
char output = Assignment1_3.run("This does not contain the word An-dy");
assertEquals('X', output);
}

@Test
public void runTestNoText() {
char output = Assignment1_3.run("");
assertEquals('X', output);
}

@Test
public void runTestAndyAtTheEnd() {
char output = Assignment1_3.run("This contains the word Andy");
assertEquals('V', output);
}

@Test
public void runTestAndyMiddle() {
char output = Assignment1_3.run("This contains the word Andy in the
middle of the sentence");
assertEquals('V', output);
}
}

现在,当我运行此测试时,出现以下错误:类型不匹配:无法从 void 转换为 char。我不知道如何解决这个问题,但我认为这只是一件小事,而且我不知道如何解决它,这真的让我很沮丧。因此,如果有人能给我有关如何解决此问题的提示,我将非常感激!

最佳答案

将您的 run 方法更改为以下方法。请注意,您没有使用 string 参数。您可能应该重构为重构版本。

public static char run(String string) {
Scanner sc = new Scanner(System.in);
System.out.print("Please provide a string");
String str1 = sc.next();
if(str1.contains("Andy")) {
return 'V'
} else {
return 'X'
}
}

重构版本:

public static char containsAndy(String string) {
return string.contains("ANDY") ? 'V' : 'X';
}

如果您希望您的方法易于测试,则不应阅读方法内的句子,而应将其作为参数提供。请参阅下面的 main 示例:

public static void main(String args[]) {
System.out.print("Please provide a string");
String sentence= sc.next();
System.out.print("Sentence contains Andy: " + containsAndy(sentence));
}

关于java - 无法从 void 转换为 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53086172/

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