• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

尝试从缓冲读取器中提取子字符串,读取某些标记

java 来源:rtkgpe 4次浏览

我使用bufferedreader提取5个网页,每个网页用空格分隔,我想使用子字符串来提取每个网页url,html,源和日期。但我需要指导如何正确使用子字符串来实现这一点,欢呼声。尝试从缓冲读取器中提取子字符串,读取某些标记

public static List<WebPage> readRawTextFile(Context ctx, int resId) { 

    InputStream inputStream = ctx.getResources().openRawResource(
      R.raw.pages); 

    InputStreamReader inputreader = new InputStreamReader(inputStream); 
    BufferedReader buffreader = new BufferedReader(inputreader); 
    String line; 
    StringBuilder text = new StringBuilder(); 

    try { 
     while ((line = buffreader.readLine()) != null) { 


      if (line.length() == 0) {  
       // ignore for now 
           //Will be used when blank line is encountered 
      } 

      if (line.length() != 0) { 
     //here I want the substring to pull out the correctStrings 
       int sURL = line.indexOf("<!--"); 
        int eURL = line.indexOf("-->"); 
       line.substring(sURL,eURL); 
       **//Problem is here** 
      } 
     } 
    } catch (IOException e) { 
     return null; 

    } 
    return null; 
} 


===========解决方案如下:

在catch块不return null,使用printStackTrace();。它会帮助你找出是否出了问题。

 String str1 = "<!--Address:google.co.uk.html-->"; 
     // Approach 1 
     int st = str1.indexOf("<!--"); // gives index which starts from < 
     int en = str1.indexOf("-->"); // gives index which starts from - 
     str1 = str1.substring(st + 4, en); 
     System.out.println(str1); 

     // Approach 2 
     String str2 = "<!--Address:google.co.uk.html-->"; 
     str2 = str2.replaceAll("[<>!-]", ""); 
     System.out.println(str2); 

注$ 100:知道,在的replaceAll使用正则表达式它将取代含正则表达式PARAMS字符串的一切。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)