如何将String值传递给Java中的另一个类

时间:2015-03-19 21:45:44

标签: java string class parameters parameter-passing

目前,我在Java代码中遇到了问题。我对Java有些新意,所以如果你记住这一点,我会很喜欢它。

我的问题是将String值从一个类传递给另一个类。

主类:

private static void charSurvey() 
{
    characterSurvey cSObj = new characterSurvey();
    cSObj.survey();

    System.out.println();
}

第二

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;


public class characterSurvey 
{   
    public void survey(String character)
    {
        Scanner s = new Scanner(System.in);

        int smartChina = 0,smartAmerica = 0,dumbAmerica = 0;
        String answer;

        System.out.println("Are you good with girls?");
        System.out.println("y/n?");
        answer = s.nextLine();
        if(answer.equalsIgnoreCase("y"))
        {
            smartChina = smartChina - 3;
            smartAmerica = smartAmerica + 2;
            dumbAmerica = dumbAmerica + 4;
        }   
        //... 
        //ASKING SEVERAL OF ABOVE ^


        List<Integer> charSelect = new ArrayList<Integer>();
        charSelect.add(smartChina);
        charSelect.add(smartAmerica);
        charSelect.add(dumbAmerica);

        Collections.sort(charSelect);
        Collections.reverse(charSelect);

        int outcome = charSelect.get(0);

        if(smartChina == outcome)
        {
            character = "smartChina";
        }
        else if(smartAmerica == outcome)
        {
             character = "smartAmerica";
        }
        else if(dumbAmerica == outcome)
        {
            character = "dumbAmerica";
        }

        System.out.println(character);
        s.close();
        }
    }

当我打电话给第一堂课时,我试图抓住第二堂课的价值。

免责声明*本课程中的字符串并不意味着伤害任何人。这是我和我的室友来自中国的一个笑话,谢谢。

2 个答案:

答案 0 :(得分:2)

在调查完成后,您似乎想要获得主班中的角色,因此可以在主要方法中打印出来。

您只需将void survey方法更改为String survey方法,即可在调用该方法时return {/ 3}}:

class CharacterSurvey {
    public String takeSurvey() {
        //ask questions, score points
        String character = null;

        if(firstPerson == outcome) {
            character = "First Person";
        }

        return character;
    }
}

现在,当您调用此方法时,您可以检索从其返回的值:

class Main {
    public static void main(String[] args) {
        CharacterSurvey survey = new CharacterSurvey();

        String character = survey.takeSurvey();
        System.out.println(character);
    }
}

答案 1 :(得分:1)

这里有几个错误。

首先,在您编写的主类中,在survey()对象上调用方法CharacterSurvey,但调查本身的实现方式需要String参数才能工作

public void survey(String character)

此方法也返回void。如果你想以某种方式从该方法中获取一个字符串,你需要将该方法声明为

public String survey() {} 

此方法现在返回一个字符串。

如果我要提出一般性的想法,请在第二个类中声明一个String变量,该变量将在调查方法中进行操作,一旦调查被声明为String方法,则返回值为方法内的结束。

通过执行此操作,您将能够通过调用characterSurvey对象上的方法来接收String值(当然,将值分配给字符串变量或使用它)。

希望这有帮助