Java 打印不包括以x结尾的数字

Java 打印不包括以x结尾的数字,java,Java,我想打印0-100之间的数字,不包括7的倍数和以7结尾的数字。除了以7部分结尾外,我能做所有的事情。int是否有一个字符等价物 完成了,谢谢你的帮助 class revision{ public static void main(String[] args){ for(int i = 0; i < 101; i++){ if(i % 7 != 0 && i % 10 != 7){ System.out.println(i);

我想打印0-100之间的数字,不包括7的倍数和以7结尾的数字。除了以7部分结尾外,我能做所有的事情。int是否有一个字符等价物

完成了,谢谢你的帮助

class revision{

  public static void main(String[] args){

    for(int i = 0; i < 101; i++){
      if(i % 7 != 0 && i % 10 != 7){

      System.out.println(i);

      }
    }
  }
}
类修订{
公共静态void main(字符串[]args){
对于(int i=0;i<101;i++){
如果(i%7!=0&&i%10!=7){
系统输出打印LN(i);
}
}
}
}
int是否有一个字符等价物

有点:您已经在使用余数运算,只是使用了不同的除数:
i%10!=7
将删除“以7结尾”的数字。(十进制;如果你想用八进制,它将是
%8
;或十六进制,它将是
%16
,等等。例如,你用数字基数做余数来隔离“1”位。)

因此:

类修订{
公共静态void main(字符串[]args){
对于(int i=0;i<101;i++){
如果(i%7!=0&&i%10!=7){
// ------------^^^^^^^^^^^^^^^
系统输出打印LN(i);
}
}
}
}


旁注:在Java中,压倒性的惯例是类名以大写字符开头。因此,
Revision
而不是
Revision

是的,有一个
charAt
来实现您想要的:

public static boolean string7(int input) {
    String inputString = input + "";
    return (input / 7 == 0) || (Character.getNumericValue(input.charAt(input.length() - 1)));
}
其他答案没有回答具体问题,因为上述方法根本不是最优的,作者打算展示一种更好的方法。我同意他们的观点,因为这种方法需要转换成
字符串
,这是一个非常昂贵的操作。您不会在单个调用中感觉到它,但如果在多维循环中调用它,则应该会感觉到性能下降。因此,与前面的答案一致,实现您想要的结果的更好方法如下:

public static boolean int7(int input) {
    return (input / 7 == 0) || (input % 7 == 0);
}
将来可能会有非常大的数字作为
input
。为了应对这种情况,您必须使用。

for(inti=0;i<101;i++){if(i%7!=0&&i%10!=7){System.out.println(i);}}}if(i.toString.substr(-1)!=7'){}
public static boolean int7(int input) {
    return (input / 7 == 0) || (input % 7 == 0);
}