如何返回一个字符串?

import java.util.*; public class HangManP5 { public static void main(String[] args) { int attempts = 10; int wordLength; boolean solved; Scanner k = new Scanner(System.in); System.out.println("Hey, what's your name?"); String name = k.nextLine(); System.out.println(name+ ", hey! This is a hangman game!\n"); RandomWord(word); int len = word.length(); char[] temp = new char[len]; for(int i = 0; i < temp.length; i++) { temp[i] = '*'; } System.out.print("\n"); System.out.print("Word to date: "); while (attempts  0) { System.out.println("\nAttempts left: " + attempts); System.out.print("Enter letter: "); String test = k.next(); if(test.length() != 1) { System.out.println("Please enter 1 character"); continue; } char testChar = test.charAt(0); int foundPos = -2; int foundCount = 0; while((foundPos = word.indexOf(testChar, foundPos + 1)) != -1) { temp[foundPos] = testChar; foundCount++; len--; } if(foundCount == 0) { System.out.println("Sorry, didn't find any matches for " + test); } else { System.out.println("Found " + foundCount + " matches for " + test); } for(int i = 0; i < temp.length; i++) { System.out.print(temp[i]); } System.out.println(); if(len == 0) { break; //Solved! } attempts--; } if(len == 0) { System.out.println("\n---------------------------"); System.out.println("Solved!"); } else { System.out.println("\n---------------------------"); System.out.println("Sorry you didn't find the mystery word!"); System.out.println("It was \"" + word + "\""); } } public static String RandomWord(String word) { //List of words Random r = new Random(); int a = 1 + r.nextInt(5); if(a == 1) { word=("Peace"); } if(a == 2) { word=("Nuts"); } if(a == 3) { word=("Cool"); } if(a == 4) { word=("Fizz"); } if(a == 5) { word=("Awesome"); } return (word); } } 

好的,所以这是我的刽子手游戏的代码,我唯一要做的就是让我的程序随机化其中一个单词,它应该在方法中成功完成。 但我遇到的唯一问题是将String变量“word”返回到主类(在主类中有强调所有“word”变量的错误)。

如果我可以通过这种或其他方式获得帮助来从列表中生成随机单词,那将是惊人的。

在java中,参数按值传递,而不是通过引用传递。 因此,您无法更改参数的引用。

在您的情况下,您需要:

 public static String getRandomWord() { switch(new Random().nextInt(5)) { case 0: return "Peace"; case 1: return "Nuts"; // ... default: throw new IllegalStateException("Something went wrong!"); } } 

main

 // ... String word = getRandomWord(); int len = word.length(); // ... 

您无法修改来电者的参考。

 RandomWord(word); 

需要像这样的东西

 word = RandomWord(word); 

此外,按照惯例,Java方法以小写字母开头。 并且,你可以返回word而不传递一个作为参数,我建议你保存你的Random引用并使用像这样的数组

 private static Random rand = new Random(); public static String randomWord() { String[] words = { "Peace", "Nuts", "Cool", "Fizz", "Awesome" }; return words[rand.nextInt(words.length)]; } 

然后称之为

 word = randomWord();