如何返回一个字符串? [英] How to return a string?

查看:143
本文介绍了如何返回一个字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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 <= 10 && 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);
 }
 }

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

Ok, so this is my code for a hangman game, the only thing I have left to do is to get my program to randomize one of the words, which it should do in the method successfully. But the only problem I'm having is getting the String variable "word" to go back to the main class (there are errors underlining all the "word" variables in the main class).

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

If I could get help with either this or another way to produce a random word from a list, that would be amazing.

推荐答案

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

In java, parameters are passed by value and not by reference. Therefore, you cannot change the reference of a parameter.

在您的情况下,您需要执行以下操作:

In your case, you need to do:

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(); 
// ...

这篇关于如何返回一个字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆