123456 發問時間: 電腦與網際網路程式設計 · 1 0 年前

JSP資料顯示

如果說我從資料庫抓出來三個字串,

分別是"甲","乙","丙",

我想使他與我原有的字串"甲丁丁乙丁丁丙"做比對

要是相同字的旁邊就加上" "

可是我比出來的結果會變成

"甲"丁丁乙丁丁丙

甲丁丁"乙"丁丁丙

甲丁丁乙丁丁"丙"

如果說想要他在同一行顯示 成為

"甲"丁丁"乙"丁丁"丙"

該怎麼做呢

懇請大家幫忙

已更新項目:

你import的東西是java的

請問在JSP中能用嗎

謝謝

2 個已更新項目:

他告訴我有些錯誤

我再跑跑看喔

謝謝你的大力相助

3 個已更新項目:

我照你說的做了

<%@page import="java.util.StringTokenizer"%>貼在最上面

把你給程式碼(除了class 前面的那個 public去掉)全部貼到<% %>中,可是他一直說我有錯

(org.apache.jasper.JasperException: Unable to compile class for JSP)

,加上那個public 錯誤更多... 可以告訴我是怎麼了嗎

不好意思一直麻煩你...> <

2 個解答

評分
  • 1 0 年前
    最佳解答

    嗯..試一下這個

    import java.util.StringTokenizer;

    /**

    * 目的:

    * 比對字串,分別是"甲","乙","丙",

    * 與原有的字串"甲丁丁乙丁丁丙"做比對

    * 要是相同字的旁邊就加上" "

    * 並要在同一行顯示 成為"甲"丁丁"乙"丁丁"丙"

    */

    public class J20070604001 {

    public static void main(String[] args){

    String mapping = "甲丁丁乙丁丁丙丁丁甲丁丁乙丁丁丙";

    String[] ss = {"x","甲","乙","丙"};

    for (int i = 0; i < ss.length; i++) {

    mapping = combine(mapping, ss[i]);

    }

    System.out.println(mapping);

    }

    private static String combine(String mapping, String s) {

    StringBuffer sb = new StringBuffer();

    StringTokenizer st = new StringTokenizer(mapping, s, true);

    while (st.hasMoreTokens()) {

    String str = st.nextToken();

    if (s.equals(str)) {

    //注意頭尾是 append 一個字元(char) " (雙引號)喔

    sb.append('"').append(str).append('"');

    }

    else {

    sb.append(str);

    }

    }

    return sb.toString();

    }

    }

    2007-06-05 08:49:06 補充:

    <%@page import="java.util.StringTokenizer"%>

    2007-06-07 17:58:59 補充:

    你 import 的東西是 java的, 請問在JSP中能用嗎 ?

    嗯....沒看到你的回應...我在回一次....

    能用...能用...能用...能用...能用...

    只要將 <%@page import="java.util.StringTokenizer"%> 加到 jsp檔頁面的上面就可以, 把 combine method 寫在頁面裡的<%!%>區塊裡就能叫用了

    2007-06-08 12:24:42 補充:

    org.apache.jasper.JasperException: Unable to compile class for JSP

    是jsp無法被編譯的錯誤, 如果你只把程式碼(除了class 前面的那個 public去掉)全部貼到<% %>中, 那肯定是錯的....

    2007-06-08 12:35:15 補充:

    試試這樣做

    先貼上這段(注意---有個驚嘆號)

    <%!

    String combine(String mapping, String s) {

    StringBuffer sb = new StringBuffer();

    StringTokenizer st = new StringTokenizer(mapping, s, true);

    2007-06-08 12:35:25 補充:

    while (st.hasMoreTokens()) {

    String str = st.nextToken();

    if (s.equals(str)) {

    //注意頭尾是 append 一個字元(char) " (雙引號)喔

    sb.append('"').append(str).append('"');

    }

    else {

    sb.append(str);

    }

    }

    return sb.toString();

    }

    %>

    2007-06-08 12:37:29 補充:

    然後在<%%>裡叫用 combine 方法

    例如

    <%

    String mapping = "甲丁丁乙丁丁丙丁丁甲丁丁乙丁丁丙";

    String[] ss = {"x","甲","乙","丙"};

    for (int i = 0; i < ss.length; i++) {

    mapping = combine(mapping, ss[i]);

    }

    %>

    mapping 就是你要的...

    2007-06-08 12:38:25 補充:

    之前貼錯的部分要拿乾淨嘿..

  • 匿名使用者
    1 0 年前

    上面大大的回答很詳細,只是小的有個問題,

    如果說要把是要把丁丁旁邊加上" "該怎麼做呢

    兩個字和一個字好像又有所不同 請大大指教

還有問題?馬上發問,尋求解答。