2015-05-23 3 views
0

Что я пытаюсь создать треугольник с помощью цикла for и вернуть его на страницу jsp или html с помощью сервлета. Я смог сделать это, возвращая несколько значений. Вот мой кодКак распечатать треугольник с помощью serlvet на странице jsp/html

protected void doGet(HttpServletRequest request, 
     HttpServletResponse response) throws ServletException, IOException { 
     int num = Integer.parseInt(request.getParameter("num")); 
     String procedure = request.getParameter("procedure_type"); 
     PrintWriter out = response.getWriter(); 

if (procedure.equalsIgnoreCase("f")) { 
       out.write("Fibonacci values " 
         + "<br>" 
         + fibo(num)); 
     } 

У меня есть этот метод Фибоначчи

public static String fibo(int n) { 
     String result = ""; 
     int num1 = 1; 
     int num2 = 0; 

     for (int i = 0; i < n; i++) { 
      num2 = num2 + num1; 
      num1 = num2 - num1; 
      result = result + " " + num1; 
     } 
     return result; 
    } 

Как я могу форматировать мой метод треугольника так, что она возвращает весь треугольник сервлетов HTMLPage?

public static void triangle(int n) { 
for (int i = 0; i < n + 1; i++) { 
        for (int j = 0; j < n + 1; j++) { 
         if (i + j < numn+1) { 
          System.out.println(" "); 
         } else { 
          System.out.println("* "); 
         } 
        } 
        System.out.println(""); 
       } 
} 

Когда я форматировать возврат в строку печатает звездочку на одной строке

некорректный вывод является выглядит следующим

************ 

ответ

0

Я думаю, ваша проблема заключается в переводе форматирование Строки в html. Вы можете использовать текстовое поле, то вам не нужно использовать &nbsp; и <br>:

public static void printTriangle(int n, PrintWriter out) { 
    out.println("<textarea readonly style=\"font-family:monospace;\">"); 
    for (int i = 0; i < n + 1; i++) { 
    for (int j = 0; j < n + 1; j++) { 
     if (i + j < numn+1) { 
     out.print(" "); 
     } else { 
     out.print("*"); 
     } 
    } 
    out.println(); 
    } 
    out.println("</textarea>"); 
} 

Альтернатива:

public static void printTriangle(int n, PrintWriter out) { 
    out.println("<div class=\"triangle-container\">"); 
    for (int i = 0; i < n + 1; i++) { 
    out.println("<div class=\"triangle-line\">"); 
    for (int j = 0; j < n + 1; j++) { 
     if (i + j < numn+1) { 
     out.print("<span> </span>"); 
     } else { 
     out.print("<span>*</span>"); 
     } 
    } 
    out.println("</div>"); 
    } 
    out.println("</div>"); 
} 

Как что вы можете легко укладывать треугольник с помощью CSS.

Смежные вопросы