我如何从另一个类中获取String?

时间:2017-06-17 04:09:39

标签: java string user-input

import java.util.*;

class Player {
    public static void main (String [] args) {
        String number = Text.nextLine
    }
}

我想要来自这个类的用户输入 进入另一个类并使用数字变量a 如果陈述

4 个答案:

答案 0 :(得分:1)

  

我希望这个类的用户输入并带入另一个类和   将数字变量用于If语句。

下面的示例很简单(确保将两个类添加到一个包不同的java文件中 Player.java ExampleClass.java ),

这是Scanner所拥有的类:

import java.util.*;

public class Player{
    public static void main (String [] args){

        Scanner getInput = new Scanner(System.in);
        System.out.print("Input a number");
        //you can take input as integer if you want integer value by nextInt()
        String number = getInput.nextLine();

        ExampleClass obj = new ExampleClass(number);
        obj.checkMethod();
    }
}

这是检查号码的类:

public class ExampleClass{
    int number;
    public ExampleClass(String number){
        try{
            //If you want to convert into int
            this.number = Integer.parseInt(number);
        }catch(NumberFormatException e){
            System.out.println("Wrong input");
        }
    }

    public void checkMethod(){
        if(number > 5){
            System.out.println("Number is greater.");
        }else{
            System.out.println("Number is lesser.");
        }
    }
}

很少提及:

您的示例代码包含语法错误,请先修复它们。

  1. 如果你想要整数,你可以使用getInput.nextInt()而不是。{ getInput.nextLine()
  2. 您可以创建getter和setter来设置vaues和获取值。在我的例子中,我只是通过构造函数设置值。
  3. 使用正确的命名约定。
  4. 在我的示例中,我将String转换为构造函数内的整数,并使用try - catch块进行换行以阻止NumberFormatException(如果输入字符或其他内容)可以看到wrong input会打印出来)。有时在变异情况下,在构造函数中使用try - catch并不好。要了解有关详情,请阅读Try / Catch in Constructor - Recommended Practice

答案 1 :(得分:0)

你通常在另一个类上进行导入,只需导入Player类,它应该可以正常工作

答案 2 :(得分:0)

我不确定我是否得到它,我想你是否正在使用扫描仪。 这就是我这样做的方式:

扫描仪课程:

public class ScannerTest { 

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.println("Insert a decimal:");
            String inputValue = scanner.nextLine();
            if(!new ScannerCalc().isNumeric(inputValue)){
                System.out.println("it's not a number...");
                break;
            } 
            else
                new ScannerCalc().checkNumber(inputValue);
        }
    }
}

ScannerCalc课程:

public class ScannerCalc {

    public boolean isNumeric(String s) {  
        return s != null && s.matches("[-+]?\\d*\\.?\\d+");  
    }  

    public void checkNumber(String number){

        if(Integer.parseInt(number)%2==0)
            System.out.println("it' even");
        else
            System.out.println("it's odd");

    }
}

注意实例化类以重用方法。

答案 3 :(得分:0)

如果要在另一个实体中使用局部变量,最好将其作为参数传递给另一个实体的方法。例如

{{1}}