如何以任意顺序使用字符串和整数组合作为输入?



如果这是一个非常基本的问题,我很抱歉,但这是我在java的第一周(主要是python背景(。

我想为变量分配一个"something"值:xy

在控制台中,我希望能够明确地说出x = some numbery = some number,以便我输入数字的顺序无关紧要。

所以它可能是:

x = some number 
y = some number 

y = some number 
x = some number 

我需要能够在运行代码时为变量赋值。

我将如何实现这一点?

在 Java 中,变量必须有一个声明的类型,并且该变量只允许存储特定类型的值。您可以声明如下变量:

String x;
String y;

然后将值分配给它们:

x = "something";
y = "some other value";

但是,您只能将字符串分配给xy。分配任何其他类型(例如int(将生成编译器错误。

我想你这样做,只要第一个字符始终是变量名,试试这个。

Scanner scan = new Scanner(System.in);
String in = scan.nextLine();
int x;
int y;
if(in.charAt(0)=='x'){
x = Integer.parseInt(in.substring(5));
in = scan.nextLine();
y = Integer.parseInt(in.substring(5));
else{
y = Integer.parseInt(in.substring(5));
in = Integer.parseInt(scan.nextLine());
x = Integer.parseInt(in.substring(5));
}

您可以将变量定义为对象。

Object x = "some string";
x = 3;

但是你应该了解更多关于java类型系统的信息。 因为不能在没有类型转换的情况下使用数学运算符。误解会导致内存泄漏。

Object x = "some string";
x = 3;
x = x + 1; // error 
x = (Integer)3 +1; //Can cause memory leak
//bellow code is Ok. But it is complex. (Hard to read and a bit slower than usual).
x = new Integer(3);
x = new Integer((Integer)3 +1);

因此,适合您的情况的更好解决方案是使用 2 个差异变量。

最新更新