我想在文本文件中搜索数字并找到它的行(如索引)并返回它.number逐行写入file.my方法:
static int Src(int num)
{
int c=0;
Scanner s=new Scanner(f);
while(s.hasNextInt())
{
c++;
int l=s.nextInt();
if(l==k)
return c;
}
return -1;
}
但没有任何反应。有哪些提示?
答案 0 :(得分:1)
该文件的内容是什么?只是渴望?它是如何从下一个长期划分的?
你不计算线数,而是长数。你总是打破,因为你的缩进是错误的。你能做的是:
static int search (long k) throws FileNotFoundException
{
int c = 0;
Scanner s=new Scanner (f); //f is a file predefined
while (s.hasNextLong ())
{
c++;
long l = s.nextLong ();
if (l == k)
{
return c;
}
}
return -1;
}
如果删除break
(返回后不需要中断 - 无法访问),则计算长数,因此如果每行有一个长,则可以使用。如果你有其他的东西,比如你的多头之间的“abc”,那就行不通了。我想,一个模式匹配“。”+ yourLong +“。”的LineNumberReader会更容易使用。
答案 1 :(得分:0)
您可以发布测试文件和测试用例吗?它看起来应该按原样运行。
一些提示:
long
秒。请记住,long
的最小值为-2 ^ 63,最大值为2 ^ 63-1。File
而不是String
long
。如果它包含任何其他内容,hasNextLong()
将在该令牌之前返回false。调试:
System.out.println(l);
以检查您是否正在阅读正确的数字其他提示:
search()
)break