正则表达式和java pattern.compile()

时间:2017-05-01 12:32:44

标签: java regex jsp

嗨我在这里用%分隔了以下引号: http://fortunes.cat-v.org/

我尝试通过此方法分隔已存储在列表(Cookie)中的引号,并在每次刷新页面后随机逐个显示它们:

    public class CookieJar {
   static List<String> cookies = new ArrayList<>();
   static int index = 0;
    /* read the page, store into rawCookiesString */
    public static void getUrlContent () throws SecurityException{
        try {
            URL url = new URL("http://fortunes.cat-v.org/openbsd/");
            BufferedReader in = new BufferedReader (new InputStreamReader(url.openStream()));
            String line;
            while ((line = in.readLine()) != null) {
                cookies.add(line);
            }
            in.close();
        }
        catch (java.net.MalformedURLException e) {
            System.out.println("Malformed url" + e.getMessage());
        }
        catch (IOException e) {
            System.out.println("I/O Error" + e.getMessage());
        }    
    }
    public static String proccessString () {
        String result =" ";
        if (index == 0) {
            index++;
            getUrlContent();
        }  
        else if (!cookies.isEmpty() && index >= 0) {
            for (String cookie:cookies) {
                Pattern pattern = Pattern.compile("%([^%]+)%");
                Matcher m = pattern.matcher(cookie);
                while (m.find()) {
                    result = m.group(1).toString();
                    Collections.shuffle(cookies);
                }
            }
        } else {
            System.out.println("Better luck next time");
        }
        return result;
    }
}

第一种方法将引号存储在cookies List中,如下所示:

,%,(1)亚历山大大帝是伟大的将军。,(2)大将军被预先警告。,(3)预先警告。(4)四是偶数。,(5)四是对于一个人来说,肯定是一个奇怪的武器数量。,(6)唯一的数字是偶数和奇数是无穷大。,因此,亚历山大大帝有无数的武器。%,(1)一切都取决于。,(2)没有什么是永远的。,(3)每一个星期每天都有。%,1.79 x 10 ^ 12弗隆 - 它不仅仅是一个好主意,它是法律! %,10.0倍0.1几乎不是1.0。%,

我希望第二种方法从%中随机提取单引号,并将其显示如下:

每两周1.79 x 10 ^ 12弗隆 - 它不仅仅是一个好主意,而是法律!

目前,每次刷新时,我得到的都是引号的随机非荒谬部分

0 个答案:

没有答案