【初心者】Java質問・相談スレ4【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
00011
NGNGなお、ソースを貼るときには、半角空白が消える仕様のため、タブ1つを全角空白2つに
置換してから投稿しましょう。雑誌や宿題などの疑問を質問するときは出展を明記した
ほうが解決が早いです。
関連情報は >>2-10 あたりにあります。 (一部 dat落ちやHTML化待ち)
JavaScriptの質問はWeb製作板へどうぞ。
web制作管理
http://pc.2ch.net/hp/
パソコンの基本操作に関しては、PC初心者板や、各OS板などで質問しましょう。
パソコン初心者@2ch掲示板
http://pc.2ch.net/pcqa/
上級者の方で教える技術が無い方は下記スレでダベりましょう。
初心者無視! Java相談室 その9
http://pc.2ch.net/test/read.cgi/tech/1021555964/
基本的にsage進行でおねがいします。
0478デフォルトの名無しさん
NGNG私は添え字も使いますよ!
0479478
NGNG0480デフォルトの名無しさん
NGNGって言うかごちゃごちゃ言う前にさわればよかろう。
必要なものは無料だ。
時間は腐るほどあるだろう。
0481デフォルトの名無しさん
NGNG本が高いので・・・・
0482名無しさん
NGNGttp://localhost/test.html?name=xx
このnameをtest.html上に設置しているAppletで取得したいのですが、
こういうことはできるんでしょうか?
appletタグにparamをつければ動作できるのですが、
呼び出し元からパラメータを送り込んでやりたいのです。
アドバイスください。よろしくお願いいたします。
0483デフォルトの名無しさん
NGNGJavaScript PHP CGI。。。
0484デフォルトの名無しさん
NGNGCGI
0485デフォルトの名無しさん
NGNGServlet/JSP
0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNG1. アプレットに getHogehoge(String) というメソッドを付けておく
2. アプレットタグに <APPLET ... NAME="aaa" MAYSCRIPT> を付けておく
3. JavaScript で name の値を取得し、aaa.setHogehoge(name) で設定する
0488H
NGNG//--------------------
for (i=24;i>=0;i--) {
image[i]=Image.createImage(20,20);
image[i].getGraphics().drawImage(imgPic,
-20*(i%5),-20*(i/5),
Graphics.LEFT|Graphics.TOP);
わかりますか??(>_<)
0489デフォルトの名無しさん
NGNGservletを作ろうとしているんですけど
どうやって環境を構築していいんか訳わかんなくなってしまいました
サンのHPにいってJ2SEとJ2EEをそれぞれ落としてきて
インストールしたんですけど、いざjavax.servletをインポート
してコンパイルしようとするとエラーでこけちゃいます
servletの開発環境としてJ2EEとJ2SEのほかにまだ必要な
ものがいるんでしょうか?
どなたかアドバイスください。よろしくおねがいします
0490デフォルトの名無しさん
NGNGお前、まったく同じ書き込みを昨日もしたろ。氏ねや糞ボケ。
0491デフォルトの名無しさん
NGNG自分の分をわきまえろ。
0493中坊
NGNG’@’を’( ’に変換し、問題の番号を挿入するものを
作ろうとしています。
実際作って色々と試しているのですが,エラーがでてはかどりません。
簡単なプログラムですが、なにぶん中坊なのでよくわかりません。
すいませんが、アドバイスをください。
よろしくおねがいします。
プログラムはこれです。
import java.io.*;
public class Ren1{
public static void main(String args[]){
String str= new String("794年@(平安京)が建てられる1192年@(鎌倉幕府)樹立");
StringBuffer str2= new StringBuffer(str);
int cnt=1;
for(int i=0;i<str2.length();i++){
if((str2.charAt(i))=='@')
str2 =str2.replace('@','(');
str2= str2.delete (i,i+1);
str2= str2.insert(i+1,cnt);/*問題番号を挿入する*/
cnt++;
}
System.out.println(str2);
System.out.println(str2);}
}
0494デフォルトの名無しさん
NGNGJ2SE を入れた後に TOMCAT を入れなければならないのですか?
あ、Apache は DSO が ON で入ってます。
0495デフォルトの名無しさん
NGNGしつこいな、クソ人間。
0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNGまた、映画「TOP GUN」ではTom Cruiseらが操縦する機体として登場しました。
比較的人気のある機体であり、例によって私もF-14フリークです。
0498デフォルトの名無しさん
NGNGJSPに関するQAスレッド
http://pc3.2ch.net/test/read.cgi/tech/1014905560/
Servlet/JSPのフレームワークを語るスレ
http://pc3.2ch.net/test/read.cgi/tech/1001950590/
0499デフォルトの名無しさん
NGNGこのスレに同じ質問があったはず
0500デフォルトの名無しさん
NGNG色々と問題(StringBufferのメソッドを理解してない)とかあるが、一番の問題は
どういう出力を望むのかイマイチ分からないこと。
794年(1(平安京)が建てられる1192年(2(鎌倉幕府)樹立
と表示したいのか?
初心者としては StringBuffer を使っているところは評価したい。
StringBufferに関してはAPIのヘルプを熟読すれば自力でなんとかなると思う。
APIは日本語版のヘルプがあるのでなめるように読みふけること。
0501デフォルトの名無しさん
NGNG凡ミスとしてループ内の文字検索 if((str2.charAt(i))=='@') の効果範囲がおかしい。
「@を見つけた時だけ」行わせたい処理なのに、その他の文字を見つけたときも
実行している。
しかし、これはコンパイルでは発見されない先走ったアドバイス。
まずはStringBufferを完璧に使いこなせるように色々とやってみよう。
コンパイルが通った後で、頭を絞ってデバッグするのだ〜
0502中坊
NGNG出力結果は
794年(1平安京)が建てられる1192年(2鎌倉幕府)樹立
この様な感じにしたいんですが
やってみると中々出来ないんですが、奮闘中です。
0503デフォルトの名無しさん
NGNG夢壊して悪いんだが正規表現クラスでぱっぱっぱじゃ駄目?
0504中坊
NGNGすみませんが,サンプルを教えて頂けないでしょうか?
0505デフォルトの名無しさん
NGNGttp://www.ingrid.org/jajakarta/regexp/
なんかは定番だけど、StringBufferとかでギコギコやるやり方覚えて
からじゃ駄目かな?
色々奮闘努力することが基礎力UPに繋がるじゃない。
煮詰まったあげくに突然「あ」と理解が進む瞬間の快感を若いうちは
大事にして欲しいな。
0506デフォルトの名無しさん
NGNGまぁ、半分冗談だからね。
初めのうちはアルゴリズムとどろどろになりながら戦うのをおすすめするけど。
0507デフォルトの名無しさん
NGNGttp://www.cacas.org/java/gnu/regexp/
0508なんとなくジサクジエンしてみる
NGNGと思っているのだが。>正規表現
0509デフォルトの名無しさん
NGNG文章わかんないよ。
前者はBSDタイプのライセンス
後者はGPLに縛られたもの
ってこと?んじゃ、後者の方が自由に使えるじゃん。
0510デフォルトの名無しさん
NGNGが1対1なのだが
HTMLが5個あってもサーブレットを1つにしてそれぞれ別の処理もできるんだろうけど
やり方がわからん
HTMLに<input type="hidden" name="flag".. でフラグを埋め込んでサーブレットで
getParamaterで受け取って判断させるとか考えたけどもっとスマートなやり方あったら
教えてください
0511デフォルトの名無しさん
NGNGソース隠匿主義?
MSの回し者?
0512デフォルトの名無しさん
NGNGrefererとるくらいだろ。
0513デフォルトの名無しさん
NGNGGPLの物を使ったらはGPLの物しか作れないのを知らないのか?
0514デフォルトの名無しさん
NGNGweb.xml にサーブレットの振替名を 5 つ定義しとけ。
0515デフォルトの名無しさん
NGNGTOMCAT のバージョンてv3.3.1で良いんでしょうか?
しかもApacheのモジュールが
mod_jk-3.3-ap13-eapi.so 27-Mar-2002 05:46 93K
mod_jk-3.3-ap13-eapi.so.asc 27-Mar-2002 05:46 285
mod_jk-3.3-ap13-noeapi.so 27-Mar-2002 05:46 93K
mod_jk-3.3-ap13-noeapi.so.asc 27-Mar-2002 05:46 285
mod_jk-3.3-ap20.so 27-Mar-2002 05:46 114K
mod_jk-3.3-ap20.so.asc 27-Mar-2002 05:46 285
こんなにあってどれをつかってよいやらわかりません!!
0516デフォルトの名無しさん
NGNG0518513=517!=508
NGNG0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNG0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNGString d = "2002/07/24";
DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
Date date = df.parse(d);
だったかな。
0523505=507=508
NGNG正規表現版・・・とか言ってライブラリのインストール方法は書かないという
意地悪をしてみる。
[コード]
import org.apache.regexp.*;
public class Ren1_regexp {
public static void main(String args[]) {
try {
RE r = new RE("@\\(");
String[] strs = r.split("794年@(平安京)が建てられる1192年@(鎌倉幕府)樹立");
StringBuffer str2= new StringBuffer(strs[0]);
for( int i=0 ; i<strs.length-1 ; i++ ) {
str2.append("(").append(Integer.toString(i+1)).append(strs[i+1]);
}
System.out.println(str2.toString());
} catch ( RESyntaxException e ) {
e.printStackTrace();
}
}
}
[結果]
794年(1平安京)が建てられる1192年(2鎌倉幕府)樹立
>>520
Date.valueOf(String) が良いのでは?Stringは"yyyy-mm-dd"形式だが。
0524デフォルトの名無しさん
NGNGありがとSUN
0525中坊
NGNGありがとうございます。
よく、わかりませんが・・・
わかるよう努力してみます〔無理っぽいけど
0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNG無いもんでしょうか?
なかなか見つからなくて。
0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNGXSLT-FO
0530デフォルトの名無しさん
NGNGLaTeXファイルを生成してPDFLaTeXでPDFに変換という手がある
ttp://www.rmatsumoto.org/tex-ps-pdf/tex-to-pdf.ja.html
つか、LaTeXソースがありゃあ大抵のドキュメントができるもんな。
LaTeXソースの書き方?そこまで面倒見れません。
0531デフォルトの名無しさん
NGNG動かす側もJREだけで済むので、コアのAPI使っとく方が何かと便利かも。
0532デフォルトの名無しさん
NGNGfor (;x<10;){
x++;
y=y+x;
}
コレだとyが55
for (;x<10;x++){
y=y+x;
}
コレだとyが45
になるんですが、これは計算方法がどう違うんですか?
0533でふぉるとん
NGNGおちつけ。
おちついて、脳内デバッガでステップ実行してみるんだ。
0534defaulton
NGNG最初はこうだ。
for (;x < 10;) {
x++;
y = y+x; //y = 0+1
}
for (; x < 10 ;x++) {
y = y+x; //y = 0+0
}
0535デフォルトの名無しさん
NGNG使い方が悪いのか、表示が変わってないだけなのか・・・?
0536困るよアプレット。
NGNGエリアに入力後、ボタンを押すと次のアプレット画面が同じ
ブラウザ上に表示される。ただし、前アプレットで入力した
文字列を後アプレット画面内のテキストエリアに貼り付けた
い。前アプレットのデータはどうやってもってくりゃいいの?
ちなみに前アプレット(*.html,*.class)、後アプレット
(*.html,*.class)のファイルは同じサーバーにありますが
格納しているフォルダは別です。いいたいことがうまくいえん。
表現へたですまんが、どなたか教えてください。
さらに、後アプレット画面には前アプレット画面に戻るボタ
ンがあるのでこれを押すと前アプレット画面が最初に入力し
た文字列も含めて表示されるようにしたい。
0537535
NGNG0538デフォルトの名無しさん
NGNGサーバーサイドで動的にHTMLを生成するか、
アプレットを一つにまとめるしかないんじゃない?
アプレットってのはそういうこと向けにできてないよ。
0539デフォルトの名無しさん
NGNGわたしといて、cgiがアプレット含んだhtmlを作るときに、受け取った
文字列をまんまアプレットにパラメータで渡してやればええやん。
つか、板違い。
0540532
NGNGすいません、俺の脳内デバッガはバグだらけなんで(泣
>>534
ありがとうございます
最初の計算方法の違いは凄く良くわかったんですが、
それだとループする回数が違うだけで、
やっぱり同じ数になると思うんですけど???
それとですね、自分で聞いていてアホかと思う質問なんですが、
x<10 ってことは
9<10 true
10<10 false ですよね?ということは、このプログラムは1〜9まで
しか足さないので、上の式でもyは45になると思うんですけど…
0541デフォルトの名無しさん
NGNG上はloop内で足しているでしょ?。。。。ふぅ。。。
0542デフォルトの名無しさん
NGNG41→Aって具合に。
数列はこんなかんじです。
String str = 7768656e2074686520
一応これでできるんですが、どうも素直じゃないなと。
for (int j = 1; j < str.length() / 2; j++){
char ch = (char)Integer.parseInt(str.substring(j * 2, (j + 1) * 2), 16);
0543デフォルトの名無しさん
NGNGこれ↓と
for (;x < 10;) {
x++;
y = y+x;
}
これ↓の違いは分かる?
for (;x < 10;) {
y = y+x;
x++;
}
0544532
NGNG分かりました。
上は55で下は45です。
xが9のとき下の式では y =y+x; //36=36+9 ⇒ 45=36+9
次にx++ でxが10になり、
ループの頭に戻って 条件式x<10 が 10<10 なのでfalseとなります
yは45です
xが9のとき、上の式は 先にx++なので 45=45+10 ⇒ 55=45+10
ループの頭に戻って 10<10 なのでfalse
yは55です
0545532
NGNGfor (;x < 10;) {
x++;
y = y+x;
}
が55になる理由は分かりました
本当にありがとうございます
あとはこっちなんですけど…
for (;x<10;x++){
y=y+x;
}
0546532
NGNGy=y+x;
}
先ほどと同じように考えると、
xが9の時、 x++されて xが10になり、
y =y+x は45=45+10 ⇒ 55=45+10になって、
yは55になると思うんですが、何故45なんでしょうか?
0547デフォルトの名無しさん
NGNGこの直後に終了条件の判定が入ります。
そして、条件が成立していれば、その後に
> y =y+x
が実行されます。
0548532
NGNG条件判定はx++されてからなんですか。
並び方が(条件初期化式;条件式;条件更新式)だったので
大きく誤解をしてました。ありがとうございます。
教えてくださった皆様、本当にありがとうございました。
0549デフォルトの名無しさん
NGNG<内容>;
}
は、
<初期化>;
while (<条件>) {
<内容>;
<更新>;
}
と全く同じだからね。
「判定がxが更新された後」というより
「xが更新されたら、ループの先頭に戻って再度条件判定を行う」という方が正確。
0550デフォルトの名無しさん
NGNG巷に出回る4つばかりの正規表現ライブラリについて、
ちょっと性能を測ってみたんですが、
OROは組み方によっては J2SDK1.4標準の正規表現ライブラリより
速くなる場合がありました。
ただし、ものすごく便利な OROの Perlライブラリ使うと、
パフォーマンスは最下位に。
とはいっても 実行速度としては 問題ありませんが。
0551ヘタレ@初心者にもなりきってない
NGNGJAVAでアニメーションカーソルとか使えますか?
しばらく放置してたらカーソルがピクピクなるような。
0552デフォルトの名無しさん
NGNGbyte[] b = (new java.math.BigInteger(str,16)).toByteArray();
とでもやって (char)b[i] とするのはどうか?
charは最大2Byteだよから、本来はモノによっては文字列4Byteを変換する
必要あり。バイト列にして変換したほうが良い。
例えば16進文字列str16を文字列strに直す場合には
String str = new String((new java.math.BigInteger(str16,16)).toByteArray());
という感じ。
0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNGありがとうございます。
下の方法が簡単そうなので、それでやってみたらうまくできました。
>charは最大2Byteだよから、本来はモノによっては文字列4Byteを変換する
>必要あり。
なるほど。実は>>542の方法だとすこし文字化けがありました。
0556デフォルトの名無しさん
NGNGrequest.setAttribute("xxx" , "xxxx" );
のように設定した値を
<%= request.getParameter("xxx") %>
のようにして取得したい場合、setAttributeをした後に
どのようにすればよいのでしょうか?
0557552追記
NGNGJavaで使用している16 ビット Unicode 文字に変換することもできる。
BigIntegerを使ったのは、昔それでうまくいったからなだけで、多分もっと良い方法も
あるのかも。
0558デフォルトの名無しさん
NGNGここではJSPとかServletは分からんので >>498 のスレッドがあるし
そこで聞いてくれ。
0559デフォルトの名無しさん
NGNG> ここではJSPとかServletは分からんので
勝手に決めないでね。
0560君てぇしぉ
NGNGchar buf[128];
int a=*(int*)&buf[16];
なる書き方をするところを、Javaで書くとどうなるのでしょうか。
お願いします。
0562デフォルトの名無しさん
NGNG「文字列bufの17番目の文字へのポインタを、int型のポインタへキャストし、その値を得ている」のですか?
多分JAVAではポインタ使わないで
char buf[] = new char[128];
・・・
buf[i] = 'a';
・・・(値は入れるんですよね?)
・・・
int a = (int)buf[16];
または
String buf = new String("This is a test. 02/07/22 14:56");
int a = (int)(buf.charAt(16));
とかなるのでは。
0563名無し
NGNGを使ってtxt形式で吐き出しました。この際、デフォルトで指定されているのか、
tomcatのルート配下のbinディレクトリにtxtファイルが出来上がります。
吐き出す場所を指定するにはどうすればいいのでしょうか?
0564君てぇしぉ
NGNGありがとうございます。
説明が不十分だったので、改めて説明します。
私が考えているのは、
unsigned char buf[128];
int a=buf[16];
ではなく、
unsigned char buf[128];
int a=*(int*)&buf[16];
に相応する操作を行いたいのです。
別の書き方をすれば
int a=buf[16]+buf[17]*256+buf[18]*256*256+buf[19]*256*256*256;
と同等になります。(厳密には違うが)
Javaでも上記の書き方は可能だと思いますが、できればスマートにやりたいので…
宜しくお願いします。
0565でふぉるとん
NGNGByteArrayInputStream ba = new ByteArrayIntpuStream(b);
DataInputStream s = new DataInputStream(ba);
s.skipBytes(16);
int a = s.readInt();
とか。
Intel系ではエンディアンが違うのかな。
NIOのByteBufferなんか使えばもっと「スマート」に書けるかも
0566君てぇしぉ
NGNGありがとうございます。
なるほど、Javaではこういうやりかたをするんですね。
ただ、「Stream」ですか…
Readすると、ポインタが強制的に先に進んで行っちゃうんですよね。
Byte単位での処理ならいいんですが、Bit単位の処理を行いたいから、
ポインタは自分で管理したいんですよね。
いい方法あれば、それを、なければその旨を教えていただければ
ありがたいのですが。
0567デフォルトの名無しさん
NGNGそれってスマートなん?
バイトオーダが違うと、
正しく実行されないよね?
俺には その場しのぎの
「汚い」コードに見えるんだが。
>>565
DataInputStream は big endianって書いてあるよ。
探せば LittleEndianDataInputStream とか
作ってる人もいるみたいだけど。
0568デフォルトの名無しさん
NGNGBit単位の処理だけであれば
ポインタの管理なんか必要ないよ。
int bitbuff;
とかやって bitbuff が空になったら次
読めばよいではないか?
0569デフォルトの名無しさん
NGNGByteArrayInputStream だったら、
mark(), reset(), skip()連発するとか。
ファイルから読み込むなら、RandomAccessFile 使うとか。
0570デフォルトの名無しさん
NGNGならば歯に衣着せないで、はっきり言おう。
>>556
こ こ は 初 心 者 ス レ だ >>498 に 書 い て あ る 専 門 の ス レ ッ ド で 訊 け
0571君てぇしぉ
NGNG>>568
>>569
ありがとうございます。
私がやろうとしているのは、ハフマンの方法で圧縮されたデータのデコードです。
Bit単位で処理を行うわけですが、次に得べきデータのBit長はデータを
読んでからでないとわかりません。
したがって、16bit読んでは、データの内容と、長さを判別し、
長さ分、ポインタ(Bit単位の)を進めるのです。
メモリに近づくことが可能なCだと、上に示した方法で安直にできるのですが、
Javaでは難しいのでしょうか。
0572デフォルトの名無しさん
NGNGPure Java の Zip とか LHA とか作ってる人居るから
調べてみれば? Googleで調べりゃ出てくるでしょう。
jazz とかいう jazzlib とか言う名前だったような…>Zip
0573デフォルトの名無しさん
NGNGハフマンのデコードだったら、
最初は 1ビットづつ ハフマンツリーを
たどってくのが基本だよね。
速度遅いけど、練習で作ってみたほうが
>>571 の望むものは早くできるかもね。
0574デフォルトの名無しさん
NGNGされるようにしたいんだけど
0575君てぇしぉ
NGNGJavaについては初心者です。
>>572
早速調べてみたいと思います。
>>573
1bitずつの処理だと速度かなり遅くなりそうな…
すでにC++で作ったものをJavaに移植したいので、改めてそのあたりの
ロジックを組むのはできれば避けたいです。
---
とりあえず、原始的に、
int a=buf[16]|(buf[17]<<8)|(buf[18]<<16)...;
でやろうと思います。
レスをつけていただいた皆様、貴重なご意見ありがとうございました。
0576デフォルトの名無しさん
NGNG個数を整数の演算子を使って求めること。
↑誰かこの問題解いてください。
set path=%path%;c:\school\j2sdk1.4.0\bin
setclasspath=a:\kadai
じゃ無理でした・・。
セットパス自体通りません〜。
0577デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています