0

だから今私はこの方法を持っています:

public static String convert(String str) {

    if (str.equals("# "))
    System.out.println(" ");

Pattern pattern = Pattern.compile("(#+[^#]+)");
Matcher matcher = pattern.matcher(str);

while (matcher.find()) {
    String str1 = matcher.group(1);
    int n = str1.length() - str1.replaceFirst("#+", "").length();
System.out.println("<h" + n + ">" + str1.substring(n) + "</h" + n + ">");
}

return ("");
}    

### Le Monde#と入力すると、<h3> Le Monde </ h3> <h1></h1>が表示されます。「ル・モンド」に続く#は無視してほしい。基本的に、アルゴリズムで一連の#とそれに続くスペースまたはリターンキーを無視する必要があります。私は何が間違っているのですか?

4

1 に答える 1

1

次の一致 (str1) を取得した後に別の行を追加します。

String str1 = matcher.group(1);
if(str1.replaceFirst("#+", "").length() == 0 || str1.replaceFirst("#+", "").matches("[\\s]+")) continue;

これにより、空白の一致は無視されます。

于 2012-10-22T00:03:52.350 に答える