在java中对相应数据进行分块

时间:2014-02-06 10:19:39

标签: java regex

我是java的新手我想要在arraylist中出现的块字符串。     例如:我的字符串=“我要去我家附近的农业科学系”然后我想要在我的代码中添加到arraylist中的农业科学部门

另一个示例,例如“你可以使用Iterator或ListIterator遍历Java ArrayList”从我的代码中,它会给问题带来问题。但我希望输出为“您可以使用Iterator或ListIterator-for-traversing-on-Java-ArrayList。”用于遍历“和”遍历Java ArrayList的ListIterator“已经在arraylist中。

我想要仅在列表中添加的块标记,例如“阿育吠陀部门”“ListIterator for traversing”。如果我的字符串是“您可以使用Iterator或ListIterator遍历Java ArrayList”,那么输出应为“您可以使用Iterator或ListIterator-for-traversing-on-Java-ArrayList”

我的代码:

String input = "You can use either Iterator or ListIterator for traversing on Java ArrayList";
    ArrayList<String> alPatterns = new ArrayList<String>();
    alPatterns.add("Department of ayurveda");
    alPatterns.add("science");
    alPatterns.add("ListIterator for traversing");
    alPatterns.add("for traversing on Java ArrayList");
    int NoOfRecords = alPatterns.size();
    int counter = 0;

    final int flags = Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE;
    Iterator it = alPatterns.iterator();

    while (counter++ < NoOfRecords) {
        try {
            String sPat = (String) it.next();
            Pattern p = Pattern.compile(sPat, flags);
            Matcher m = p.matcher(input);

            OUTER: while (m.find()) {

                String sMatchFound = m.group();
                String newstring = sMatchFound.replaceAll(" ", "-");
                 input = input.replaceAll(sMatchFound, newstring);
                continue OUTER;
            }

            System.out.println(input);

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

0 个答案:

没有答案