2012-11-15 21 views
3

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

实施例(真未经深思熟虑一个)

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

然后显示5?

+0

不,没有。 –

+2

为什么你不使用舍入函数?在这个例子中,'floor'后面除以1000将会给你5 – ChrisW

+0

@ChrisW它不会用于四舍五入:p我应该已经指定了,它将用于比较数字。我应该指出这一点。 – Kalvin

回答

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)); 
} 
+0

只是检查是否有一种数字特有的方式,但我猜不是。谢谢:) – Kalvin

+0

@Kalvin你可以写一个像我一样的函数,并调用它,这将是'int'特有的:) – Doorknob

+0

当你在一个空的空间上调用子字符串时,每次你都会得到索引数组串。添加括号以避免这种情况。 –

3

你为什么不只是把它转换为字符串,然后调用substring(0,1) ...

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

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

+0

您在这里缺少括号:((数字+“”)。子(0,1)); –

+0

是否需要括号?我知道JVM在它试图调用'substring()'之前首先评估'+“”',将它转换为一个String。当然,括号不会伤害:-) – wattostudios

+0

直到那天我意识到我不是,我仍然处于相同的印象之下。尝试运行它。它会给你一个错误。 –

2

不,没有。但你可以在整数可能转换为字符串,并得到串并再次解析回到整数

2

没有有没有这样的事情,但你可以做到以下几点:

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

或者,如果你只是想删除的最后一个Y位:

number = (int)(number/y); 
如果你想只保留最近ž数字的

number = number%(Math.pow(10,z)); // % means modulo 
1

不,没有。 int是一种原始数据类型。然而,你可以用一个陈述完成你的需要。

Integer.parseInt(String.valueOf(12345).substring(1, 2)) 
+1

然后,您必须将'String'解析回'int'。 – Doorknob

+0

承认我的疏忽。感谢您指出。 –

相关问题