有什么我可以用它来看看一些具有相同数字的另一个开始? 防爆。 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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top