我目前正在尝试从整数(大于1位)中提取单个数字(int),但我无法在此问题上找到任何帮助。
例如:
- 从123456获得3
或
- 从1257848获得4
我将如何在Java中执行此操作?
答案 0 :(得分:5)
试试这个:
String.valueOf(Math.abs((long)x)).charAt(0)
或做一些像
这样的计算 int x= Integer.parseInt(Integer.toString(123456).substring(0, 1));
或
int digit(int x) {
while (x > 9) {
x /= 10;
}
return x;
}
答案 1 :(得分:3)
根据要提取的位数使用% or /
运算符。像
12345 % 10 = 5
12345 % 100 = 45
12345 / 10000 = 1
答案 2 :(得分:3)
无需解析char,只需使用-'0'
trick:
free( fooArray[0] );
free( fooArray[1] );
free( fooArray );
答案 3 :(得分:2)
public static int getFirstDigit(int val) {
if (val < 0) {
throw new RuntimeException("Bad Input: " + val);
}
while (val > 9) {
val = val / 10;
}
return val;
}
答案 4 :(得分:2)
试试这个
public int getVal(int digits)
{
String str=String.valueOf(digits);
for (int i=0; i<str.length(); i++)
{
if((str.charAt(i)) == '3') // 3 or 4 or whatever digit you desire
return str.charAt(i);
}
return 0;
}
答案 5 :(得分:2)
如果您想要n
- (从右到左)数字(在我的示例中,计数从0开始),您只需要计算(num/(10^n))%10
。
如果不清楚,请告诉我。