Java 忽略文件中最后指定的字符
我有这段代码:Java 忽略文件中最后指定的字符,java,Java,我有这段代码: int numberStars =0; int counter =0; while (file.hasNext()) { String contents = file.next(); { if (contents.contains("*")) { numberStars = counter; continue; } counter++;
int numberStars =0;
int counter =0;
while (file.hasNext()) {
String contents = file.next();
{
if (contents.contains("*")) {
numberStars = counter;
continue;
}
counter++;
}
}
如果我有一个文本文件,其中包含
List<Integer> numberStars = new ArrayList<Integer>();
int counter = 0;
while (file.hasNext()) {
String contents = file.next();
if (contents.contains("*")) {
numbStars.add(counter);
continue;
}
counter++;
}
numberStars.remove(numberStars.size() - 1); // remove last value
// all the values are now available in the numberStars list
哈德法*拉我们*巴*
输出将为3,5,6。如何更改此循环,使最后一个*不被计数(因此6将不存在),以及如何确保每次将值分配给numberStars时,该值将用于方法的另一部分
非常感谢。如果我了解您想要什么,请保存最后一个计数器,最后只使用它
int lastcounter = -1;
boolean starfound = false;
while (file.hasNext()) {
String contents = file.next();
{
if (contents.contains("*")) {
lastcounter = numberstars;
numberStars = counter;
starfound = true;
} else {
counter++;
}
if(starfound) {
// do something
starfound = false;
}
}
}
return lastcounter;
如果我明白你想要什么,那么保存最后一个计数器,最后只使用它
int lastcounter = -1;
boolean starfound = false;
while (file.hasNext()) {
String contents = file.next();
{
if (contents.contains("*")) {
lastcounter = numberstars;
numberStars = counter;
starfound = true;
} else {
counter++;
}
if(starfound) {
// do something
starfound = false;
}
}
}
return lastcounter;
看起来您可能想存储
计数器的值列表,而不是只存储一个int
。差不多
List<Integer> numberStars = new ArrayList<Integer>();
int counter = 0;
while (file.hasNext()) {
String contents = file.next();
if (contents.contains("*")) {
numbStars.add(counter);
continue;
}
counter++;
}
numberStars.remove(numberStars.size() - 1); // remove last value
// all the values are now available in the numberStars list
List numberStars=new ArrayList();
int计数器=0;
while(file.hasNext()){
字符串内容=file.next();
if(contents.contains(“*”){
添加(计数器);
持续
}
计数器++;
}
numberStars.remove(numberStars.size()-1);//删除最后一个值
//所有值现在都可以在numberStars列表中找到
看起来您可能希望存储计数器的值列表,而不是只存储一个int
。差不多
List<Integer> numberStars = new ArrayList<Integer>();
int counter = 0;
while (file.hasNext()) {
String contents = file.next();
if (contents.contains("*")) {
numbStars.add(counter);
continue;
}
counter++;
}
numberStars.remove(numberStars.size() - 1); // remove last value
// all the values are now available in the numberStars list
List numberStars=new ArrayList();
int计数器=0;
while(file.hasNext()){
字符串内容=file.next();
if(contents.contains(“*”){
添加(计数器);
持续
}
计数器++;
}
numberStars.remove(numberStars.size()-1);//删除最后一个值
//所有值现在都可以在numberStars列表中找到
是否只包含一行文件?
我建议使用BufferedReader读取文件,然后
使用String.split()方法查找星号
BufferedReader br = new BufferedReader(new FileReader("yourFile"));
String line;
String[] tmp;
int counter;
while( (line=br.readLine() ) !=null)
{
tmp = line.split(" ");
//Ignoring the last element
for(int i = 0; i < (tmp.length-1); i++)
{
if(tmp[i].contains("*"))
counter++;
}
}
BufferedReader br=newbufferedreader(newfilereader(“yourFile”);
弦线;
字符串[]tmp;
整数计数器;
而((line=br.readLine())!=null)
{
tmp=行分割(“”);
//忽略最后一个元素
对于(int i=0;i<(tmp.length-1);i++)
{
if(tmp[i]。包含(“*”)
计数器++;
}
}
是否只包含一行文件?
我建议使用BufferedReader读取文件,然后
使用String.split()方法查找星号
BufferedReader br = new BufferedReader(new FileReader("yourFile"));
String line;
String[] tmp;
int counter;
while( (line=br.readLine() ) !=null)
{
tmp = line.split(" ");
//Ignoring the last element
for(int i = 0; i < (tmp.length-1); i++)
{
if(tmp[i].contains("*"))
counter++;
}
}
BufferedReader br=newbufferedreader(newfilereader(“yourFile”);
弦线;
字符串[]tmp;
整数计数器;
而((line=br.readLine())!=null)
{
tmp=行分割(“”);
//忽略最后一个元素
对于(int i=0;i<(tmp.length-1);i++)
{
if(tmp[i]。包含(“*”)
计数器++;
}
}