[英]is there a method that scan a string and add line before a repeated keyword index in java
[英]JAVA: Search string/keyword in the file and add the line that consist the searched string/keyword in an ArrayList
我在這里:
String Path = "C:\\Ian\\sample\\install.info"
List<String> BatchList = new ArrayList<String>();
List<String> installList = new ArrayList<String>();
List<String> uninstallList = new ArrayList<String>();
Scanner scanner = new Scanner(Path);
String myLine;
int i = 0;
while((myLine = scanner.next()) != null)
{
if(myLine.indexOf("C:\\Batch") == 0 )
{
BatchList.add(myLine);
}
if(myLine.indexOf("C:\\install") == 0 )
{
installList.add(myLine);
}
if(myLine.indexOf("C:\\uninstall") == 0 )
{
uninstallList.add(myLine);
}
i++;
}
這是install.info的內容
[BatchFiles]
C:\Batch\Batch1.jar
C:\Batch\Batch2.jar
C:\Batch\Batch3.jar
C:\Batch\Batch4.jar
[INSTALL]
C:\install\sql1.sql
C:\install\sql2.sql
C:\install\sql3.sql
C:\install\sql4.sql
[UNINSTALL]
C:\uninstall\sql1.sql
C:\uninstall\sql2.sql
C:\uninstall\sql3.sql
C:\uninstall\sql4.sql
我有什么想法或任何方法來獲取包含關鍵字的行並將其放入ArrayList中?
期望的輸出
BatchList應包含:
C:\install\Batch1.jar
C:\install\Batch2.jar
C:\install\Batch3.jar
C:\install\Batch4.jar
installList應包含:
C:\install\sql1.sql
C:\install\sql2.sql
C:\install\sql3.sql
C:\install\sql4.sql
uninstallList應該包含以下內容:
C:\uninstall\sql1.sql
C:\uninstall\sql2.sql
C:\uninstall\sql3.sql
C:\uninstall\sql4.sql
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
更新
List<String> batchList = new ArrayList<String>();
List<String> installList = new ArrayList<String>();
List<String> uninstallList = new ArrayList<String>();
Scanner scanner = new Scanner(Path);
String myLine;
int i = 0;
while (scanner != null && scanner.hasNext()) {
if ((myLine = scanner.next()) != null) {
if (myLine.indexOf("C:\\Batch") == 0) {
batchList.add(myLine);
}
if (myLine.indexOf("C:\\install") == 0) {
installList.add(myLine);
}
if (myLine.indexOf("C:\\uninstall") == 0) {
uninstallList.add(myLine);
}
i++;
}
}
if (scanner != null) {
scanner.close(); // Closing scanner
}
String[] BatchPath = batchList.toArray(new String[0]);
String[] SQLinsPath = installList.toArray(new String[0]);
String[] SQLuninsPath = uninstallList.toArray(new String[0]);
for (String k : BatchPath)
{
System.out.println(k);
}
for (String k : SQLinsPath)
{
System.out.println(k);
}
for (String k : SQLuninsPath)
{
System.out.println(k);
}
下面的代碼將為您服務。
import java.io.File;
public static void main(String[] args) {
String path = "C:\\Ian\\sample\\install.info"; // Changed variable name from Path to path
File file = new File(path); // Creating file object
List<String> batchList = new ArrayList<String>(); // Changed variable name from BatchList to batchList
List<String> installList = new ArrayList<String>();
List<String> uninstallList = new ArrayList<String>();
Scanner scanner = null;
try {
scanner = new Scanner(file); // Reading file object
} catch (FileNotFoundException e) {
e.printStackTrace();
}
String myLine;
int i = 0;
while (scanner != null && scanner.hasNext()) {
if ((myLine = scanner.next()) != null) {
if (myLine.indexOf("C:\\Batch") == 0) {
batchList.add(myLine);
}
if (myLine.indexOf("C:\\install") == 0) {
installList.add(myLine);
}
if (myLine.indexOf("C:\\uninstall") == 0) {
uninstallList.add(myLine);
}
i++;
}
}
if (scanner != null) {
scanner.close(); // Closing scanner
}
// System.out.println(batchList);
// System.out.println(installList);
// System.out.println(uninstallList);
String[] BatchPath = batchList.toArray(new String[0]);
String[] SQLinsPath = installList.toArray(new String[0]);
String[] SQLuninsPath = uninstallList.toArray(new String[0]);
System.out.println("Batch List : ");
for (String k : BatchPath) {
System.out.println(k);
}
System.out.println();
System.out.println("Install List : ");
for (String k : SQLinsPath) {
System.out.println(k);
}
System.out.println();
System.out.println("Uninstall List : ");
for (String k : SQLuninsPath) {
System.out.println(k);
}
}
輸出:
Batch List :
C:\Batch\Batch1.jar
C:\Batch\Batch2.jar
C:\Batch\Batch3.jar
C:\Batch\Batch4.jar
Install List :
C:\install\sql1.sql
C:\install\sql2.sql
C:\install\sql3.sql
C:\install\sql4.sql
Uninstall List :
C:\uninstall\sql1.sql
C:\uninstall\sql2.sql
C:\uninstall\sql3.sql
C:\uninstall\sql4.sql
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.