java问题 大神求教

quliang001 2018-01-28 05:37:58
代码的作用是在[n,m]中找出包含38或4的数的个数 我想问为什么我用indexof时 发现 即使我输入4时 也显示查找不到呢


import java.util.*;

public class Main {

public static void main(String[] args) {
Scanner zx = new Scanner(System.in);
while (zx.hasNext()) {
int n = zx.nextInt();
int m = zx.nextInt();
if(n == 0 && m == 0 ) break;
int j = 0;
for (int i = n; i <= m; i++) {
String a = Integer.toString(i);
if (a.indexOf(38) != -1 || a.indexOf(4) != -1) {
j++;
}
}
System.out.println(j);
}
}
}
...全文
1393 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zoeg 2018-03-13
  • 打赏
  • 举报
回复
细心,细心,细心
Miracle1216 2018-03-08
  • 打赏
  • 举报
回复
你写的indexOf里面是整数,对应的是ascii,应该写字符串 a.indexOf("38") != -1 || a.indexOf("4") != -1
smnzg 2018-03-08
  • 打赏
  • 举报
回复
indexof是String的方法,你可以把int转成string,再indexof
  • 打赏
  • 举报
回复
ywl470812087 2018-02-06
  • 打赏
  • 举报
回复
Java中字符串中子串的查找共有四种方法,如下: 1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。 2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。 3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。 4、int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。
qq_36585995 2018-01-31
  • 打赏
  • 举报
回复
是字符38和4,又不是整型的38和4,整型的38和4会进行转码变成一个单字符而已,你可以根据ASCII 表找到整型38和4对应的单字符是什么,但不是你想要查找的字符串“38”和字符串“4”。
gchenxx 2018-01-30
  • 打赏
  • 举报
回复
a.indexOf("38") != -1 || a.indexOf("4") != -1
天涯若风 2018-01-29
  • 打赏
  • 举报
回复
建议点进去看indexOf源码
  • 打赏
  • 举报
回复
a.indexOf(“38”) != -1 || a.indexOf(“4”) != -1 这才能查找字符串。。。。
weixin_39670158 2018-01-28
  • 打赏
  • 举报
回复
if (a.indexOf(38) != -1 || a.indexOf(4) != -1) -> if (a.indexOf(”38“) != -1 || a.indexOf("4") != -1)
三年喂 2018-01-28
  • 打赏
  • 举报
回复
你 indexOf 里的参数和 ASCII 表是对应的

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧