Java 将while循环与if语句相结合 公共静态字符串转换(字符串str) { if(str.equals(“#”) System.out.println(“”); Pattern=Pattern.compile(“(#+[^#]+)”; Matcher-Matcher=pattern.Matcher(str); while(matcher.find()) { 字符串str1=matcher.group(1); 如果(str1.replaceFirst(“#+”,“”)的.length()==0 | | str1.replaceFirst(“#+”,“”)的.matches(“[\\s]+”) 继续; int n=str1.length()-str1.replaceFirst(“#+”,“”)。length(); System.out.println(“+str1.substring(n)+”); } 焦糖; carac=str.charAt(0); 如果(carac>=65&&carac=,那么我可以得到这个输出:

Java 将while循环与if语句相结合 公共静态字符串转换(字符串str) { if(str.equals(“#”) System.out.println(“”); Pattern=Pattern.compile(“(#+[^#]+)”; Matcher-Matcher=pattern.Matcher(str); while(matcher.find()) { 字符串str1=matcher.group(1); 如果(str1.replaceFirst(“#+”,“”)的.length()==0 | | str1.replaceFirst(“#+”,“”)的.matches(“[\\s]+”) 继续; int n=str1.length()-str1.replaceFirst(“#+”,“”)。length(); System.out.println(“+str1.substring(n)+”); } 焦糖; carac=str.charAt(0); 如果(carac>=65&&carac=,那么我可以得到这个输出:,java,if-statement,while-loop,Java,If Statement,While Loop,分贝对于这个输入:##分贝??(而不是这个,我得到的是分贝。我正在做一个算法,其中“#”在句子的开头被识别,并根据出现的#的数量变成或。之后,算法识别句子开头是否有大写字母;如果有,则在段落的开头和结尾添加。 我面临的最大问题是,我希望能够将两者结合起来。因此,假设我有附录,我希望将其转换为附录 谢谢公共静态字符串转换(String str) public static String convert(String str) { if (str.equals("# ")) Syste

分贝

对于这个输入:##分贝??(而不是这个,我得到的是

分贝

。我正在做一个算法,其中“#”在句子的开头被识别,并根据出现的#的数量变成

。之后,算法识别句子开头是否有大写字母;如果有,则在段落的开头和结尾添加


我面临的最大问题是,我希望能够将两者结合起来。因此,假设我有附录,我希望将其转换为附录

谢谢

公共静态字符串转换(String str)
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 + ">");
  }
  char carac;
  carac = str.charAt(0);
  if (carac >= 65 && carac <= 90)
  {
     System.out.println("<p>");
     System.out.println(str);
     System.out.println("</p>");
  }
  return ("");
}
{ if(str.equals(“#”) System.out.println(“”); Pattern=Pattern.compile(“(#+[^#]+)”; Matcher-Matcher=pattern.Matcher(str); while(matcher.find()) { 布尔附加p=false; 焦糖; 对于(int i=0;i”);append\u p=false;} } if(Character.isUpperCase(str.charAt(0)){ System.out.println(“”+str+“

”); 返回(“”); }

这将测试第一个字符是否为大写字母,并附加/prepend

很难理解此代码试图实现的目标,这使得回答问题更加困难。您已经为我们提供了一个您试图实现的目标的示例(鉴于
“分贝”
不是以a和Z之间的字符开始的,但不是一般的目标。我正在做一个算法,其中”#"在句子的开头被识别,并根据出现的#的数量变成

。之后,算法识别句子开头是否有大写字母;如果有,则在段落的开头和结尾添加

。#部分已经很好地工作了。这是部分我遇到的最大问题是,我想将两者结合起来。因此,假设我有附录,我想将其转换为附录。我看到了您代码中的一些缺陷。让我更正它们并发布整个
convert()
源代码对于您当前解决
附录的困境

@Arn0ld\t在那里,我已经将
if()
语句集成到了您的while循环中。这太好了……但是部分只适用于一个#……如果没有或有多个#它就不起作用了#
   public static String convert(String str)
 {
   if (str.equals("# "))
      System.out.println(" ");
   Pattern pattern = Pattern.compile("(#+[^#]+)");
   Matcher matcher = pattern.matcher(str);

   while (matcher.find())
   {
       boolean append_p = false;
       char carac;
        for(int i = 0; i < str.length(); i++){
       if(Character.isLetter(str.charAt((i)))){
           if (Character.isUpperCase(str.charAt(i)))
           {
              System.out.print("<p>");
              append_p = true;
              break;
           }
       }else{
           append_p = false;
       }
   }
      String str1 = matcher.group(1);
      if (str1.replaceFirst("#+", "").length() == 0 || str1.replaceFirst("#+", "").matches("[\\s]+"))
         continue;
      int n = str1.length() - str1.replaceFirst("#+", "").length();
      System.out.print("<h" + n + ">" + str1.substring(n) + "</h" + n + ">");
      if(append_p == true){ System.out.print("</p>"); append_p = false;}
   }
   if(Character.isUpperCase(str.charAt(0)){
      System.out.println("<p>"+str+"</p>");
   return ("");
 }