0
public class Md2html {
    public static void main(String[] args) throws IOException {

       String stringToConvert = new Scanner(System.in).nextLine();
       System.out.println(convert(stringToConvert));

    }

    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);
             if(str1.replaceFirst("#+", "").length() == 0 ||
                str1.replaceFirst("#+", "").matches("[\\s]+")) 
                      continue;
             int n = str1.length() - str1.replaceFirst("#+", "").length();
             System.out.println("<h" + n + ">" + str1.substring(n) + 
                                "</h" + n + ">");

             double carac;
             carac = str.charAt(0);
             if(carac>65 & carac <=90) {
                  System.out.print("<p>");
                  System.out.println(str);
                  System.out.println("<p>");
             }
        }

        return ("");
    }     
}

これで、# の数に応じて # を < h1> < h2> に変換するアルゴリズムができました...段落の先頭に < p> を追加し、段落に < /p> を追加しようとしています。それの終わり。何らかの理由で、段落の先頭に < p> を追加し、段落の末尾に < /p> を追加するコンバーターの 2 番目の部分が機能しないようです (ダブル carac で始まるコードです)。誰かが私が間違っていることを教えてもらえますか???

4

1 に答える 1

0

文字列が大文字で始まり、終了タグがない場合、段落の 2 つの開始タグを出力しています。交換

System.out.print("<p>");
System.out.println(str);
System.out.println("<p>");

System.out.print("<p>");
System.out.println(str);
System.out.println("</p>"); //<--here

また、ブール演算には、ビットごとの AND&&ではなく、論理 AND を使用する必要があります。&

また、ではなくをString#charAt(int)返します。として宣言しています。代わりに宣言します。chardoublecaracdoublechar

于 2012-10-25T05:14:21.980 に答える