题
有什么我可以用它来看看一些具有相同数字的另一个开始? 防爆。 5643和5377都开始有五个。
有没有办法用数字做这个或做他们必须是字符串? (startsWith?)
解决方案
ICH n1和n2是您的号码:
return (n1.toString().charAt(0) == n2.toString().charAt(0));
您将不得不使用整数不是int,由于INT没有的ToString()方法。
如果n1是可以使用新的整数(N1)的int的ToString()。
甚至更好(由气罐建议的):
String.valueOf(n1).charAt(0) == String.valueOf(n2).charAt(0)
其他提示
递归除以10,直到整个分裂小于十,则该数目是第一个和可以比较的数字。
您可以计算第一位:
public int getFirstDigit(int number) {
while (number >= 10) {
number /= 10;
}
return number;
}
(这将只为正数工作。)
但话又说回来,你可以只比较字符串表示的第一个字符。该字符串比较可能会比较慢,但因为你的问题是“获取字符串表示的第一个字符”它可能只是合适的解决方案。 :)
最直接的方法(允许不同长度值)很可能只是像你说的,他们都转换为字符串。
int x = 5643;
int y = 5377;
String sx, sy;
sx = "" + x; // Converts int 5643 to String "5643"
sy = "" + y;
boolean match = (sx.charAt(0) == sy.charAt(0));
public static byte firstDigit(int number) {
while (true) {
int temp = number / 10;
if (temp == 0) {
return (byte) Math.abs(number);
}
number = temp;
}
(INT)(A / 10 **(INT)Math.log10(a))的
可能比串溶液效率较低,但是没有循环,它使我们在“数字”的境界。
(一定要记住,当你在谈论的数字在数数,LOG10是你的朋友)
而且不会为负工作号码-采取第一的绝对值。
有关整数,INT n1和INT N2;
return ("" + n1).charAt(0) == ("" + n2).charAt(0);
不隶属于 StackOverflow