Java如何返回数字的一部分?

Java如何返回数字的一部分?,java,Java,我试图返回数字的一部分,如下所示: int foo = 123456789; System.out.println( foo[0-3] ); //123 我还想得到不同索引的数字片段,例如从2到5。在Python中,它非常简单,但出于某种原因,在Java中也不容易做到这一点。foo是一个数字,而不是数组,因此不能对它进行切片。首先需要将其转换为字符串,然后执行子字符串(=字符数组切片): 如果需要再次将其用作数字,则需要将其转换回int: int converted = Integer.pa

我试图返回数字的一部分,如下所示:

int foo = 123456789;

System.out.println( foo[0-3] ); //123

我还想得到不同索引的数字片段,例如从2到5。在Python中,它非常简单,但出于某种原因,在Java中也不容易做到这一点。

foo
是一个数字,而不是数组,因此不能对它进行切片。首先需要将其转换为
字符串
,然后执行子字符串(=字符数组切片):

如果需要再次将其用作数字,则需要将其转换回int:

int converted = Integer.parseInt(slice);

您可以将int转换为字符串,将其子字符串化,然后再次将其解析为整数:

int foo = 123456789;
String foorStr = Integer.toString(foo);
String fooSubstr = foo.substring(0, 3); //the last index is exclusive
int fooParted = Integer.parseInt(fooSubstr);
int v=123456;
System.out.println(String.valueOf(v).substring(1,3))

已经有一个方法
parseInt
适合于此。它采用字符串值、起始位置、结束位置和基数。您可以通过以下方式使其变得更简单:

System.out.println(getSubNumber(123456789, 2,6));

public static int getSubNumber(int value, int start, int end) {
    return Integer.parseInt(Integer.toString(value), start, end, 10);
}

印刷品

3456

或者放弃该方法,直接使用
Integer.parseInt
。对于长类型,有一个等价的
Long.parseLong

我明白了。数组切片有很多结果,但我认为对于单个整数也会有一些结果。非常感谢。非常有用。谢谢
3456