- PR -

STRUTSと文字列処理

投稿者投稿内容
norinorimi
ベテラン
会議室デビュー日: 2005/07/28
投稿数: 51
投稿日時: 2005-08-01 18:22
先日はありがとうございました。
また同じ場所でつまづいています。

Vector vector = new Vector();
Vector userlog = new Vector();
vector.add(answer); ///answerの中身は省略します。///
Enumeration e = vector.elements();
while(e.hasMoreElements()){
Object obj = e.nextElement();
AA A = (AA)obj;
String loglog = A.log;
userlog.addElement(loglog);
System.out.println(loglog);

上記のコードでデータをとると、
2005/07/01 ABCABCABCABCABCABCABCABC, DEFDEFDEFDEFDEF
2005/08/01 GHIGHIGHIGHIGHIGHIGHIGHI, JKLJKLJKLJKLJKL
(以下省略)
のような形になりました。見づらいので、
2005/07/01
ABCABCABCABCABCABCABCABC
DEFDEFDEFDEFDEF
・・・・
の形にデータを変形したい場合、
" "(日付と文字の隙間です)か、","を利用して文字列処理を
行うことになると思います。
現在参考書等で勉強中でまだ答えが得られません。
参考になるサイト、若しくは甘えてしまいますが
お手本を示していただけたら幸いです。
よろしくお願いいたします。

taro
ぬし
会議室デビュー日: 2003/10/20
投稿数: 316
投稿日時: 2005-08-01 18:33
Struts関係ないですけど、このへんでしょうか?

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/String.html#replace(char, char)
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/String.html#replaceAll(java.lang.String, java.lang.String)
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/StringTokenizer.html
norinorimi
ベテラン
会議室デビュー日: 2005/07/28
投稿数: 51
投稿日時: 2005-08-01 18:37
taroさま、ありがとうございます。
最後の内容は全く知らなかったのでとても勉強になります。
ありがとうございました。
norinorimi
ベテラン
会議室デビュー日: 2005/07/28
投稿数: 51
投稿日時: 2005-08-02 11:32
すいません、もう一つ質問です。
taroさまのアドバイスに従い、

while(e.hasMoreElements()){
Object obj = e.nextElement();
AA A = (AA)obj;
String loglog = A.log;
StringTokenizer st = new StringTokenizer(loglog,",");
while (st.hasMoreTokens()) {
String stlog = st.nextToken();
userlog.add(stlog);
}

としたところ、やはり駄目で(改行されないのは当然ですが・・)、解決法もよくわかりません。また、JSPのテーブル内に表示される際に、アドバイスをいただく前とは異なる、はみ出たような表示になってしまいます。JSP,STRUTSにはStringTokenizerは合わないのでしょうか?StringTokenizerクラス以外の方法で文字列処理を行ったほうがよいのでしょうか?
もしご存知の方おられましたらお願いします。


YOU@IT
ぬし
会議室デビュー日: 2002/03/29
投稿数: 284
お住まい・勤務地: 大阪
投稿日時: 2005-08-02 11:52
引用:

norinorimiさんの書き込み (2005-08-02 11:32) より:
やはり駄目で(改行されないのは当然ですが・・)、解決法もよくわかりません。


何がだめなのかよくわかりません。
norinorimiさんはどうなってほしいのですか?
現状はどうなってしまっているのですか?

引用:

また、JSPのテーブル内に表示される際に、アドバイスをいただく前とは異なる、
はみ出たような表示になってしまいます。


状況がよくわかりませんが、単なるHTMLのテーブルのレイアウト崩れと思います。

引用:

JSP,STRUTSにはStringTokenizerは合わないのでしょうか?
StringTokenizerクラス以外の方法で文字列処理を行ったほうがよいのでしょうか?


全く関係ないです。
StringTokenizerはJavaのコアAPIで、非常に汎用的なものです。
特定の技術(JSP,Struts)とはあわない、ということはありえません。



norinorimi
ベテラン
会議室デビュー日: 2005/07/28
投稿数: 51
投稿日時: 2005-08-02 11:57
YOU@ITさま、返答ありがとうございます。分かりづらい文章すいません。

<< norinorimiさんはどうなってほしいのですか?
JSPに表示される際に、現在は
2005/07/01 ABCABCABCABCABCABCABCABC, DEFDEFDEFDEFDEF
となる文字列を、
2005/07/01
ABCABCABCABCABCABCABCABC
DEFDEFDEFDEFDEF
としたいのです。

<< 単なるHTMLのテーブルのレイアウト崩れ
レイアウト崩れですか・・・。ならない方法もあるのでしょうか?
ググって調べてみます。

分かりづらくてすいませんでした。ありがとうございました。


Ren
会議室デビュー日: 2005/05/06
投稿数: 3
投稿日時: 2005-08-02 12:11
文字列処理の方法だけ。
引用:

2005/07/01 ABCABCABCABCABCABCABCABC, DEFDEFDEFDEFDEF
となる文字列を、
2005/07/01
ABCABCABCABCABCABCABCABC
DEFDEFDEFDEFDEF
としたいのです。


との事ですので、
コード:
StringTokenizer st = new StringTokenizer(loglog," "); 
while (st.hasMoreTokens()) { 
    String stlog = st.nextToken().replaceAll(",","").trim(); 
    userlog.add(stlog);
}



これじゃだめですかね?
YOU@IT
ぬし
会議室デビュー日: 2002/03/29
投稿数: 284
お住まい・勤務地: 大阪
投稿日時: 2005-08-02 12:22
色々と不明点が多いようですので、こういうときは1つ1つ
解決していくのがセオリーと思います。

まず、JSPうんぬん、StringTokenizerうんぬんより前に、単純にHTMLだけで
望む画面を作ってみてはどうでしょうか?
コード:
<html>
  <body>
    <table>
      <tr>
        <td>2005/07/01<br>ABCABCABCABCABCABCABCABC<br>DEFDEFDEFDEFDEF</td>
      </tr>
    </table>
  </body>
</html>


のような感じにすれば改行しますよね。(認識あってますか?)

これでよいのであれば、これをJSPに直して、空白やカンマを<br>に置き換えればいいですよね。
それは、Renさんのサンプルコードのように、String#replaceAll()でもOKですよね。

スキルアップ/キャリアアップ(JOB@IT)