用java来写:查找数字查找第一行第一列,如果没有0就在第一行的后面加空格后打“a”,如果有0,就跳到第二行的第二列开始

用java来写:查找数字

查找第一行第一列,如果没有0就在第一行的后面加空格后打“a”,

如果有0,就跳到第二行的第二列开始查找数字“0,3,5,6,9”, (只在第二列查找)

如果没找到,跳到第三行第二列继续找。如此循环找,直到找到最后一行第二列都没找到,就打“空”。

如果找到这5个数字中的其中一个,就打间隔行数(比如在第三行找到,打2),停止查找,


进而跳到第二行第一列查找数字,如果没有0在第二行的后面加空格后打“a”,

如果有0,就跳到第三行的第二列开始查找数字“0,3,5,6,9”,

如果没找到,跳到第四行第二列继续找。如此循环找,直到找到最后一行第二列都没找到,就打“空”。

如果找到这5个数字中的其中一个,就打间隔行数。

·····

·······

如此循环查找下去。到最后一行第一列停止查找。直接打NO


查找完成后生成一个新的txt文件,如图


898952 1年前 已收到1个回答 举报

cooltree 幼苗

共回答了21个问题采纳率:100% 举报

package image;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class LookingFile
{
public static final String FILE = "查找前.txt";
public static final String RESULT = "查找后.txt";
public static final String VALUES = "0,3,5,6,9";

public static List looking ( String file )
{
int index = -1;
String head = "", body = "";
String reg = "\s+";
ArrayList bucket = new ArrayList ();
Scanner scanner = null;
try
{
scanner = new Scanner (new File (file), "UTF-8").skip ("[u4e00-u9fff\s]+");
while (scanner.hasNextLine ())
{
index++;
String[] line = scanner.nextLine ().split (reg);
head = line[0].trim ();
body = line[1].trim ();
if (VALUES.indexOf (body) != -1)
{
if (bucket.contains ("#"))
{
for ( int i = 0; i < bucket.size (); i++ )
{
if ("#".equals (bucket.get (i)))
{
bucket.set (i, String.valueOf (index - i));
}
}
}
}
if (!"0".equals (head))
{
bucket.add ("a");
}
else
{
bucket.add ("#");
}
}
for ( int i = 0; i < bucket.size (); i++ )
{
if ("#".equals (bucket.get (i)))
{
bucket.set (i, "空");
}
}
bucket.set (bucket.size () - 1, "No");
}
catch (Exception e)
{
e.printStackTrace ();
}
finally
{
if (null != scanner)
{
scanner.close ();
}
}
return bucket;
}

public static void writing ( List bucket, String file, String result )
{
int index = -1;
String line = null;
FileReader fr = null;
BufferedReader br = null;
FileWriter fw = null;
BufferedWriter bw = null;
try
{
fr = new FileReader (file);
br = new BufferedReader (fr);
fw = new FileWriter (result);
bw = new BufferedWriter (fw);
while (null != ( line = br.readLine () ))
{
line = line.trim ();
if (line.matches ("\d+\s+\d+"))
{
index++;
bw.write (line + "tt" + bucket.get (index) + System.getProperty ("line.separator"));
}
}
bw.flush ();
bw.close ();
fw.close ();
br.close ();
fr.close ();
}
catch (Exception e)
{
e.printStackTrace ();
}
}

public static void main ( String[] args )
{
writing (looking (FILE), FILE, RESULT);
}
}

1年前

1
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.161 s. - webmaster@yulucn.com