Java检查int的第一个数字是否为0

时间:2018-04-30 11:15:55

标签: java if-statement integer

所以问题很简单。 如果#include<stdio.h> #include<math.h> int main() { double xp,yp,xq,yq,a,b,c; double t,xn,yn; int z; scanf("%d",&z); scanf("%lf%lf",&xp,&yp); scanf("%lf%lf%lf",&a,&b,&c); scanf("%lf%lf",&xq,&yq); t=asin(b/c); if(z==0) { xn=xp*cos(t)-yp*sin(t)-xq*cos(t)+yq*sin(t)+xq; yn=xp*sin(t)+yp*cos(t)-xq*sin(t)-yq*cos(t)+yq; } else { xn=xp*cos(t)+yp*sin(t)-xq*cos(t)-yq*sin(t)+xq; yn=-xp*sin(t)+yp*cos(t)+xq*sin(t)-yq*cos(t)+yq; } printf("%0.lf %0.lf",xn,yn); return 0; } 的第一个数字是int;

,如何检入java

说我有:

0

现在我需要一个if语句,对int y = 0123; int n = 123; 返回true,对y返回false。

4 个答案:

答案 0 :(得分:5)

你的问题很奇怪,原因之一是:一个int值不能以0开始。但是如果你将值存储在String中,你可以像这样轻松地检查它:

public static void main(String[] args) {
    String y = "0123";
    String n = "123";

    System.out.println(startByZero(y));
    System.out.println(startByZero(n));
}

public static boolean startByZero(String value) {
    return value.startsWith("0");
}

输出:

true
false

修改 像Oleksandr建议的那样,你也可以使用:

public static boolean startByZero(String value) {
    return value.charAt(0) == '0';
}

此解决方案比第一种解决方案更有效。 (但我个人认为它的可读性也较差)

答案 1 :(得分:3)

你的

y = 0123

将被视为八进制基础,但

 n = 123

十进制基数

现在你做的时候

if (y == n )

将始终根据小数基数对数字进行比较。

根据您的要求,您必须从八进制到十进制进行转换,反之亦然。

您也可以使用Strings作为@Valentin推荐。

答案 2 :(得分:2)

这似乎不是主题,而是基于OP的评论:

  

我需要这个的原因是因为我正在使用自制日期。如果我有约会时间03.04.2018&#39;我想打印它为3. 4. 2018,开头没有0   Lommmp

如果您不想重新发明轮子,则应使用java time API来解析和格式化日期:

LocalDate date = LocalDate.parse("03.04.2018", DateTimeFormatter.ofPattern("MM.dd.yyyy"));
System.out.println(date.format(DateTimeFormatter.ofPattern("M.d.yyyy")));
  

2018年3月4日

答案 3 :(得分:-1)

的String.format(&#34;%01D&#34;,数);
对于长度为1的零填充。
像0123
请阅读:https://www.geeksforgeeks.org/java-string-format-examples/