簡體   English   中英

JAVA:在文件中搜索字符串/關鍵字,並在ArrayList中添加包含搜索到的字符串/關鍵字的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM