Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java复制文本文件中以特定字符开头和结尾的字符串_Java_String_File_Search_Find - Fatal编程技术网

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

如何使用Java复制文本文件中以特定字符开头和结尾的字符串,java,string,file,search,find,Java,String,File,Search,Find,我已经使用Java在文本文件中复制了一个网页的页面源代码 文件中有以下字符串,我只需要复制数字并将其保存在另一个文件中 "编号","[67034134567034124867703204956703187006700317434670315031670314751670314299670311573]"; 只是以“'numbers'”、“[”开头并以“]”结尾的字符串 以下是我所做的: import java.io.*; import java.net.*; public class cop

我已经使用Java在文本文件中复制了一个网页的页面源代码

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

"编号","[67034134567034124867703204956703187006700317434670315031670314751670314299670311573]";

只是以“'numbers'”、“[”开头并以“]”结尾的字符串

以下是我所做的:

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。

您的搜索字符串非常具体,因此我认为即使是最严格的反正则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
123123123
123123123
1231232
345634
3453534
123123
123123123 123123123 1231232 345634 3453534 123123
您可以使用
String
方法来完成

注意,这只会得到“[…]”第一次出现时的内容

输出:

123123123 123123123 1231232 345634 3453534 123123
123123123
123123123
1231232
345634
3453534
123123

你为什么给我们看那个代码?这似乎不相关(除此之外,这是您获取数据的方式)。为了解决这个具体问题,你尝试了什么?我找不到任何方法@duncanHi@Duncan,我曾尝试将您的代码应用到我的程序中,但由于我无法理解Pattern.compile方法中的字符,因此我无法进一步。你能解释一下那行代码吗?