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 ("");
}
}
好的,现在我有一个算法将#转换为&lt; H1&GT; &LT; H2&GT;取决于#的数量...我现在正在尝试添加&lt; p为H.在段落的开头和&lt; / p为H.在它的最后。由于某种原因,转换器的第二部分,应该添加&lt; p为H.在开头和&lt; / p为H.在段落的末尾似乎不起作用(这是以双carac开头的代码)。谁能告诉我我做错了什么???
答案 0 :(得分:0)
如果字符串以大写字母开头且没有结束标记,则为段落打印两个开始标记。取代
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)
还会返回char
,而非double
。您将carac
声明为double
。相反,声明为char
。