- PR -

JAVA初心者なのですが、教えてもらいたいです。

1
投稿者投稿内容
ドラ
常連さん
会議室デビュー日: 2004/06/24
投稿数: 25
投稿日時: 2004-06-24 15:10
class Item{

String lable;
String text = "";
//Vector text = new Vector();
public void setlable(String str) {
Lable = str;
}
public void settext(String str) {
text.add(str);
}
public String getString() {
String str;
int i;
str = lable;
for(i = 0; i<text.size(); i++) {
str += (String)text.get(i) + "\r\n";
}
return str;
}
}
今、vectorを使用するとプログラムは動くのですが、vectorを使用しないで、Stringを使って表示させようとするとエラーが出て、動かせません。vectorの動作をStringに変えればよいと思うのですが、どうやってやればいいか分かりません。ご指導お願いします。
タラン
大ベテラン
会議室デビュー日: 2004/03/17
投稿数: 138
投稿日時: 2004-06-24 15:19
まず何がしたいのかよく分かりませんね。

なぜVectorを使わないでやりたいのかもしりたいですね。

まずただのStringでやりたいっていうから書いてみます。

ただのStringでやるなら下記のように。。。
ただしtextが一つしかない場合です。
class Item{

String lable;
String text = "";

public void setLable(String str) {
lable= str;
}
public void setText(String str) {
text = str;
}
public String getString() {
String str_local;
str_local = lable;
str_local+= text + "\r\n";
return str_local;
}
}
じゃなくてtestが複数あったり。。。 その数が決まってない場合には他のやり方が必要だと思います。

[ メッセージ編集済み 編集者: MUSE 編集日時 2004-06-24 15:20 ]
Cluster
ぬし
会議室デビュー日: 2003/03/06
投稿数: 289
お住まい・勤務地: 大阪
投稿日時: 2004-06-24 15:19
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/String.html
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/Vector.html
を熟読して、StringとVectorの違いを理解してください。

それでもわからなければ、プログラミング初心者向け(Java初心者向けではなく)の
入門書で勉強されることをお勧めします。
taro
ぬし
会議室デビュー日: 2003/10/20
投稿数: 316
投稿日時: 2004-06-24 15:54
他の皆様の回答で十分と思いますが、せっかく書いたので貼っておきます。

VectorとStringはまったく別のクラスなので、置き換えようとすると色々と変更
しなければならなくなり、新しく作った方が早い、というレベルです。
ですので、新しく作ると思って書いてみました。

以下のコードでやってることはなんとなくわかるでしょうか?
文字列を改行文字("\r\n")を挟んで連結しています。
--------------------------
Class Test{
public static void main(String args[]){
String str1 = "abc";
String str2 = "def";
String result = str1 + "\r\n" + str2;
System.out.println(result);
}
}
--------------------------
出力結果:
abc
def

上記のコードではTestクラスだけで処理を行っていますが、
文字列の処理を他のクラスにやらせるように変更すると、
以下のようになります。丸数字を追ってみてください。
--------------------------
Class Test{
public static void main(String args[]){
String label = "title:";
String str1 = "abc";
String str2 = "def";
Item item = new Item(); // @ Itemクラスを使うための準備
test.setText(str1); // A "abc"をItemクラスのsetTextメソッドに渡す
test.setText(str2); // C "def"をItemのsetTextメソッドクラスに渡す
String result = test.getString(); // E Itemクラスから文字列を取得する
System.out.println(result); // G 返された文字列を画面に出力する
}
}
-- ここから別クラスです --
Class Item{
String text = "";
public void setText(String str){
// B Aでセットされた"abc"をtext(まだ1文字も入っていない)の
// 末尾に連結して、最後に改行文字をつける
// D Cでセットされた"def"をtext(Bで文字列が入れられている)の
// 末尾に連結して、最後に改行文字をつける
text = text + str + "\r\n";
}
public String getString(){
// F CDで文字列が入れられたtextを返す
return text;
}
}
--------------------------
出力結果:
abc
def

ご参考になれば幸いです。

# 文字化けしてたらごめんなさい。

[ メッセージ編集済み 編集者: taro 編集日時 2004-06-24 15:55 ]
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2004-06-24 16:08
引用:

MUSEさんの書き込み (2004-06-24 15:19) より:
str_local+= text + "rn";


 改行コードは、下記のような方法で設定した方が良いかと思います。
※改行コードはOS毎に異なります。

コード:
class Test{

  public static void main(String args[]){
		System.out.println("あいうえお"+System.getProperty("line.separator")+"かきくけこ");
	}

}

ドラ
常連さん
会議室デビュー日: 2004/06/24
投稿数: 25
投稿日時: 2004-06-24 17:22
みなさん本当にありがとうございました。
1

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