如何使用Java复制以文本文件中的特定字符开头和结尾的字符串

时间:2014-07-02 11:59:46

标签: java string file search find

我已使用Java将网页的页面源复制到文本文件中。

文件中有以下字符串,我只需复制数字并将其保存在另一个文件中。

'数字',' [670341345,670341248,670320495,670318700,670317434,670315031,670314751,670314299,670311573]');

只是以&#34开头的字符串; '数字' ,' ["并以"结束]&#39); "

这是我做的:

import java.io.*;
import java.net.*;


public class copyID {
    public static void main (String[] args) throws Exception {

    String url = "http://www.google.com";
    StringBuilder fullPage = new StringBuilder();
    URL olx = new URL (url);

    URLConnection conn = olx.openConnection();

    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));

    String inputLine;
    while((inputLine = in.readLine()) != null){

        fullPage.append(inputLine+"\n");
}
    in.close();
    saveToFile(fullPage.toString());    }                                                           

    public static void saveToFile(String input){
        try{
            BufferedWriter out = new BufferedWriter (new FileWriter("ID_List.txt"));

            out.write(input);
            out.close();

        }
        catch (IOException e){}

    }



    }

我该怎么办?我正在使用Eclipse。

2 个答案:

答案 0 :(得分:2)

您的搜索字符串非常具体,所以我认为即使是最强化的反正则表达式HTML用户也可以使用正则表达式。

下面的代码显示了如何隔离相关文本并提取数字。我假设您可以研究如何解决其余问题:

String example = "sdflkjsdflskdfs0980sdflkjmlsdf'numbers', '[1231231"
    + "23,123123123,1231232,345634,3453534,123123]');asdasdasdasd";

Pattern pattern = Pattern.compile("'numbers', '\\[(.*?)\\]'\\);");
Matcher matcher = pattern.matcher(example);

while (matcher.find()) {
  String[] numbers = matcher.group(1).split(",");
  for (String s : numbers) {
    System.out.println(s);
  }

输出:

123123123
123123123
1231232
345634
3453534
123123

答案 1 :(得分:0)

您可以使用String方法执行此操作。

请注意,这只会在第一次出现“[..]”时出现。

String str = "sdflkjsdflskdfs0980sdflkjmlsdf'numbers', '[1231231"
            + "23,123123123,1231232,345634,3453534,123123]');asdasdasdasd";

String subStr = str.substring(str.indexOf("[")+1, str.indexOf("]"));

String[] numbers = subStr.split(",");

for(String num: numbers)
   System.out.println(num);

输出:

123123123
123123123
1231232
345634
3453534
123123