3

好吧,我只是好奇。但我想知道是否有数字的子字符串(math.substring?),然后它会在指定的位置获取字符。

示例(真的很糟糕的一个)

int number = 5839;
int example = number.substring(0,1)
println = example;

然后它显示5?

4

5 回答 5

3

你为什么不把它转换成一个字符串,然后调用substring(0,1)?...

int number = 5839;
int example = Integer.parseInt((number+"").substring(0,1));

调用number+""会导致 JVM 将其转换为String,然后调用substring()它。然后,您最终将其解析回int

于 2012-11-15T01:43:55.633 回答
2
int number = 5839;
String numString = Integer.toString(number);
String example = numString.substring(0,1)
int subNum = Integer.parseInt(example);
System.out.println(subNum);

将其更改为String第一个。这是我写的一个小函数:

public static int intSubstring(int number, int beginIndex, int endIndex) {
    String numString = Integer.toString(number);
    String example = numString.substring(beginIndex,endIndex)
    int subNum = Integer.parseInt(example);
    return subNum;
}

或压缩:

public static int intSubstring(int number, int beginIndex, int endIndex) {
    return Integer.parseInt((number+"").substring(beginIndex,endIndex));
}
于 2012-11-15T01:43:52.870 回答
2

不,那里没有。但是您可以将整数转换为字符串并获取子字符串并再次解析回整数

于 2012-11-15T01:44:47.720 回答
2

不,没有这样的事情,但您可以执行以下操作:

String s = ""+number; //You can now use the Substring method on s;

或者,如果您只想删除最后 y 位:

number = (int)(number/y);

如果您只想保留最后的 z 位:

number = number%(Math.pow(10,z)); // % means modulo
于 2012-11-15T01:45:52.220 回答
1

不,没有。int是原始数据类型。但是,您可以通过一个声明来满足您的需求。

Integer.parseInt(String.valueOf(12345).substring(1, 2))
于 2012-11-15T01:47:51.510 回答