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

Java 如何以任意顺序使用字符串和整数组合作为输入?,java,Java,如果这是一个非常基本的问题,我很抱歉,但这是我在java中的第一周(主要是python回溯) 我想给变量赋值:x和y 在控制台中,我希望能够明确地说x=some number和y=some number,这样输入数字的顺序就不重要了 因此可能是: x = some number y = some number 或 我需要能够在运行代码时为变量赋值 如何实现这一点?在Java中,变量必须声明一个类型,并且该变量只能存储特定类型的值。您可以这样声明变量: String x; String y;

如果这是一个非常基本的问题,我很抱歉,但这是我在java中的第一周(主要是python回溯)

我想给变量赋值:
x
y

在控制台中,我希望能够明确地说
x=some number
y=some number
,这样输入数字的顺序就不重要了

因此可能是:

x = some number 
y = some number 

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


如何实现这一点?

在Java中,变量必须声明一个类型,并且该变量只能存储特定类型的值。您可以这样声明变量:

String x;
String y;
然后将值分配给它们:

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

但是,您只能将字符串分配给
x
y
。分配任何其他类型(例如,
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=“一些字符串”;
x=3;
但您应该进一步了解java类型系统。 因为没有类型转换,您无法使用数学运算符。误解可能会导致内存泄漏

Object x=“一些字符串”;
x=3;
x=x+1;//错误
x=(整数)3+1//可能导致内存泄漏
//下面的代码可以。但它是复杂的。(阅读困难,速度比平时慢一点)。
x=新的整数(3);
x=新整数((整数)3+1);

因此,更好的解决方案是使用两个差异变量。

您的意思是在运行代码时从控制台传递参数吗?是的,就是从控制台传递参数。我想特别指定一个值“x=something,y=something”(其中x和y是代码中的变量),我这样做的顺序并不重要。因此,您想将字符串
“something”
指定给
x
y
?是的,这正是我要寻找的确定的可能重复项,因此我无法将“x=3和y=2”以及变量x和y现在将具有值x=3和y=2?是的。您不能。但是可以放置x=“3”和y=“2”。要使用整数值,您需要使用integer.parseInt(x)或integer.parseInt(y);
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));
}
Scanner scn = new Scanner(System.in);
String line =scn.nextLine();

int x,y;
String[] parts = line.split("=");

if(parts[0] == 'x'){
    x = parseInt(parts[1]);
}else{
    y = paseInt(parts[1]);
}