【初心者・ネタ】Java質問・相談スレ【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGお前らとりあえずがんがってください
そして誰か教えてください。
関連スレ
初心者無視! Java相談室 その9
http://pc.2ch.net/test/read.cgi/tech/1021555964/
調べようとする優秀な奴は↑へどうぞ。
0357デフォルトの名無しさん
NGNGreturnは関係ないだろうな。
コードからjava.lang.NullPointerExceptionが予測されるのは、
}else if(next.body.equals(element)){の部分のnext.bodyがnullの
場合だ。
多分、再度試したときには、これがnullじゃなかったんだろう。
エラーが出たときは、それが発生した行数もチェックして、どこが
おかしいか確かめたほうがいいよ。
0358デフォルトの名無しさん
NGNGif 文の中であっても、return 文は、メソッドの実行を終了させて、呼び出し元に戻ります。
0359デフォルトの名無しさん
NGNGNullPointerExceptionは、どの行で出たんだ?
0360デフォルトの名無しさん
NGNGどうも、next.bodyがnullの時があったようです。
0361デフォルトの名無しさん
NGNGどっちがおもしろいだろう?
0362デフォルトの名無しさん
NGNGほんとうにありがと。ぼう参考書からの抜粋なんだけど
avstract class Shape{
void display(){
}}
class Circle extends Shape{
void display(){
System.out.println("Circle");
}}
class Rectangle extends Shape{
void display(){
System.out.println("Rectangle");
}}
class Triangle extends Shape{
void display(){
System.out.println("Triangle");
}}
class AbstractClassDemo{
public static void main(String args[]){
Shape s=new Circle();
s.display();
s=new Rectangle();
s.display();
s=new Triangle();
s.display();
}}
このアブストラクトクラスにはなんの意味があるの?
abstractをけしてコンパイルしてみたんだけど
出来るんだよね。どうしてもこの概念が理解できない。
とりあえず今月のJavaWorldをよんでみるけど。。
0363デフォルトの名無しさん
NGNG魅力的な面で言えばJなのかなぁ。どうなんでしょう?
0364デフォルトの名無しさん
NGNG基底クラスのShapeをインスタンス化させたくないってこと。
0365デフォルトの名無しさん
NGNGええと、
avstract ってのは単なるタイプミスね。
(今度からはきちんとコピー&ペーストしましょう)
abstract なクラス Shape を消してもエラーが出ない、というのは、どうだろう。
これを確認してくれ。
Shape クラスの宣言がソース中にある状態でコンパイルしたときに出来たクラスファイル
Shape.class
が、まだ存在している状態で、ソース上から
abstract class Shape{
void display(){
}}
を削除(コメントアウト)してコンパイルしていませんか?
class Circle extends Shape{ ......
なんかの行をコンパイルするときに、コンパイラは extend 元の Shape クラスを探しに行く
わけだけど、既に Shape.class というファイルが存在していると、コンパイラはソース中に
Shape クラスの宣言がなければそれを使うよ。
コンパイルする前に、すべての .class ファイルを削除する癖をつけると、
良いと思うんだけど。
0366364
NGNGちがう。よく意図を読んでやれ。abstract修飾子を消したってことを362はいいたんだと思う。
0367365
NGNGなるほど。たしかに。
この例が、abstract メソッドを含んでいないので、ちょっとわかりにくいかも。
http://www.gimlay.org/~javafaq/
この Java FAQ なんかをみると、abstract メソッドを含む abstract クラスの
例が載ってるので、そっちのほうがわかりやすいかも。
0368デフォルトの名無しさん
NGNGマジでありがとう。2chでこんなやさしくされると
涙出るよ。ちょっと行ってみます。
0369ダメプログラマのダメっぷり
NGNG実行されることを昨日知って愕然とした・・・
0370デフォルトの名無しさん
NGNG0371368
NGNGつまりメソッドだけそのクラスにおいといて
実装を別のクラスで出来るからプログラムが
汎用的になるってことかな?
違う気がする・・
インスタンス化させたくないクラスおくことの
意味がいまいち解らない・・
>>365
このfaqまじでいい!
ありがとです。
0372デフォルトの名無しさん
NGNGだからな。Cとかだとこれがないん、でロックしたまま忘れてリター
ンしちゃったりlongjumpが使いにくかったりする。
0373デフォルトの名無しさん
NGNGすごい簡単なプログラムを組んで見たんだけど
なんかきたないものになっちゃって、
ここにいる上級者の人達はどれくらいスマートに
書けるのか手本見せてもらってもいい?
0374デフォルトの名無しさん
NGNG言語不問でやった方がどろどろしておもしろそう。
スレ立てて>>1に仕様書いてみんなでやればいいじゃん。
0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNGawkとsortコマンド組み合わせると1〜2行で書ける気がする。
0377デフォルトの名無しさん
NGNG>>376
forしか使ってない。。。
上級者が俺の同じ出力を出すのに
何行くらいで出来るのか見てみたい
0378デフォルトの名無しさん
NGNGBASICでいいなら100行以内に収めて魅せるぜ?
0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNG学籍番号|1 2 3 4 5 6 7 8 9 10
--------------------------------------------
点数 |66 56 78 55 88 90 56 76 73 58
順位 | 6 8 3 10 2 1 8 4 5 7
このように出力させるプログラム。
ちなみにおれは}をちゃんと1つに付き1つ改行して
31行だった。forだけで20行切れるつわものはいますか?
0381デフォルトの名無しさん
NGNGpublic class Juni{
public static void main(String args[]){
int array[]=new int[9];
int array2[]={66,56,78,55,88,90,56,76,73,58};
System.out.print("学籍番号 |");
for(int j=1;j<=10;j++){
System.out.print(j+" ");
}
System.out.println(" ");
System.out.print("------------------------------------------------");
System.out.println(" ");
System.out.print("点数 |");
for(int k=0;k<10;k++){
System.out.print(array2[k]+" ");
}
System.out.println(" ");
System.out.print("順位 |");
int count=1;
for(int s=0;s<array2.length;s++){
for(int i=0;i<array2.length;i++){
if(array2[s]<array2[i])
count++;
}
if(count==10)
System.out.print(count+" ");
else
System.out.print(count+" ");
count=1;
}
}
}
ちなみにJava歴1週間です。だれか一番きれいに書けるか、
そしてその人はJava歴何年か教えてちょーだい。
長い分になってすまん
0382デフォルトの名無しさん
NGNGcsvからhtml表生成最強言語は?
http://pc.2ch.net/test/read.cgi/tech/1021596367/
0383デフォルトの名無しさん
NGNGpublic static void main(String args[]){
int array[]=new int[9];
int array2[]={66,56,78,55,88,90,56,76,73,58};
System.out.print("学籍番号 |");
for(int j=1;j<=10;j++)
System.out.println(j+" ");
System.out.println("------------------------------------------------ ");
System.out.print("点数 |");
for(int k=0;k<10;k++)
System.out.println(array2[k]+" ");
System.out.print("順位 |");
int count=1;
for(int s=0;s<array2.length;s++){
for(int i=0;i<array2.length;i++){
if(array2[s]<array2[i])
count++;
}
System.out.print(count+" ");
count=1;
}
}
}
0384デフォルトの名無しさん
NGNG始めて知った。w参考になったよ>>383
23行。おれほんと無駄の多い人間だったんだな。
なんかこれとまったく違う書き方で
あっと言わせる書き方できるひといないっすか?
sort?とか使って。
0385デフォルトの名無しさん
NGNGSystem.out.print("学籍番号 |");for(int j=1;j<=10;j++)System.out.println(j+"");System.out.println("------------------------------------------------ ");
System.out.print("点数 |");for(int k=0;k<10;k++)System.out.println(array2[k]+" ");System.out.print("順位 |");int count=1;for(int s=0;s<array2.length;s++){
for(int i=0;i<array2.length;i++){if(array2[s]<array2[i])count++;}System.out.print(count+" ");count=1;}}}
0386デフォルトの名無しさん
NGNGの部分がないとたぶん微妙にずれるぞ。
0387デフォルトの名無しさん
NGNGあれ?幅違ってたの?あれ。
じゃ\tでごまかす。
0388デフォルトの名無しさん
NGNGpublic static void main(String[] args) {
System.out.println("学籍番号| 1 2 3 4 5 6 7 8 9 10");
System.out.println("----------------------------------------");
System.out.println("点数 | 66 56 78 55 88 90 56 76 73 58");
System.out.println("順位 | 6 8 3 10 2 1 8 4 5 7");
}
}
データ固定じゃつまらない。
もっと一般的な問題にしようよ。
0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNG・゚・(ノД`)・゚・。
そんなことしなくても。。
じゃー誰か問題出してくり。簡単なんだけど
工夫したらすごいかっこよくなる奴。
0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNG見せてほすい。
相当見やすいんだろうな。
0393デフォルトの名無しさん
NGNG0394デフォルトの名無しさん
NGNGclass Data {
int tensuu; // 0〜100点
int gakuseki; // 正の整数
}
class Junni {
int[] getJunni(final Data[] data) {
// dataと同じ長さの配列に順位を入れて返す。
}
}
基準は短さ?
んー、7行スレみたいだな。まあいいや。
0395デフォルトの名無しさん
NGNGint[] getJunni(final Data[] data) {
int[] hindo = new int[100], junni = new int[data.length];
for (int i = 0; i < data.length; i++) {
hindo[data[i].tensuu]++;
}
for (int i = data.length - 1; i > 0; i--) {
hindo[i - 1] += hindo[i];
}
for (int i = data.length - 1; i > 0; i--) {
junni[i] = hindo[data[i].tensuu];
}
return junni;
}
}
0396デフォルトの名無しさん
NGNGclass Student { int id; int score; int rank; }
class Rank {
static void setRank(Student[] studentArr) {
List studentList = Arrays.asList(studentArr);
MyComparator comparator = new MyComparator();
comparator.sortBy = "score";
Collections.sort(studentList, comparator);
Collections.reverse(studentList);
int oldScore = Integer.MAX_VALUE, rank = 1, oldRank = 1;
for (Iterator i=studentList.iterator(); i.hasNext(); rank++) {
Student s = (Student)i.next();
oldRank = s.rank = s.score != oldScore ? rank : oldRank;
oldScore = s.score;
}
comparator.sortBy = "id";
Collections.sort(studentList, comparator);
}
static class MyComparator implements Comparator {
String sortBy;
public int compare(Object o1, Object o2) {
Student s1 = (Student)o1; Student s2 = (Student)o2;
return sortBy.equals("score")
? (s1.score<s2.score ? -1 : (s1.score==s2.score ? 0 : 1))
: (s1.id<s2.id ? -1 : (s1.id==s2.id ? 0 : 1));
}
public boolean equals(Object obj) { return this == obj; }
}
}
public class Main {
public static String spc(int cnt, int i) {
StringBuffer sb = new StringBuffer("" + i);
while (sb.length() < cnt) sb.insert(0, " ");
return sb.toString();
}
public static void main(String[] argv) {
int[] scoreArr ={66,56,78,55,88,90,56,76,73,58,100,100};
Student[] studentArr = new Student[scoreArr.length];
for (int i=0; i<studentArr.length; i++) {
studentArr[i] = new Student();
studentArr[i].id = i+1;
studentArr[i].score = scoreArr[i];
}
Rank.setRank(studentArr);
String ln = System.getProperty("line.separator");
System.out.print("学籍番号");
for (int i=0; i<studentArr.length; i++) System.out.print(spc(3, studentArr[i].id) + " ");
System.out.print(ln + "点数 ");
for (int i=0; i<studentArr.length; i++) System.out.print(spc(3, studentArr[i].score) + " ");
System.out.print(ln + "順位 ");
for (int i=0; i<studentArr.length; i++) System.out.print(spc(3, studentArr[i].rank) + " ");
System.out.println("");
}
}
0397デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1021817147/380
0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNGさっそく最初のプログラムをじっこうしてみたら
Exception in thread "main" java.lang.NoClassDefError: 〜
みたいのがでてきちゃいました。
mainメソッドがない、みたいな意味かと思うんですけど
どうしたらいいんでしゃうか?
0400デフォルトの名無しさん
NGNG歯を磨いてオナニーしてから寝る。
0402デフォルトの名無しさん
NGNGたぶん、クラスパスの設定
その段階だと手っ取り早いのはコマンドラインで
set CLASSPATH=
と打って、クラスパスをはずす。
0403デフォルトの名無しさん
NGNGそれだけは教えられない。
0404デフォルトの名無しさん
NGNGこれを知ったときは
初めて、肛門オナニーを覚えた時のようだ
0405399
NGNGクラスパスって??
0406デフォルトの名無しさん
NGNGSET CLASSPATH=%CLASSPATH%;.;
の方が良くない?
0407デフォルトの名無しさん
NGNGJava で使う *.class ファイルを探すディレクトリ/JAR ファイルの事。
実行しようとしたクラスがクラスパス上に無かったため ClassNoDefFound...
となった。
0408399
NGNGできました。ありがとうございます。
ところで、これってプログラム実行毎にやらなきゃなんですか?
0409デフォルトの名無しさん
NGNGという罠
0410デフォルトの名無しさん
NGNGと.classまで書いちゃったとか。
0411デフォルトの名無しさん
NGNGオナニーする前に、
http://java-house.jp/ml/archive/j-h-b/021880.html#body
これを120回繰り返して読め。
0412デフォルトの名無しさん
NGNG変数にアンダースコア"_"がついてるのは、何か意味があるんですか?
特別な意味がありそうなんだけど、基準が見えません。
職場の先輩に聞いても、はっきりした答えが返ってきませんでした。
_data_、とか変数名の前後にこれをつける理由ちゅうか基準を知りたいです。
よろしくお願いします。
0413デフォルトの名無しさん
NGNGアンダースコア使うと動きが変わる/属性が変わる等の機能的な
規約とかはない。あるとしたらプロジェクトの命名規約とか
個人的な命名規約とかそんな所。
0414デフォルトの名無しさん
NGNG機能的に変わることがないのはわかるんですが、規約的にどういう意味があるのかな?
って思うんですよ。
たとえばC言語の標準ライブラリのヘッダファイルだと、アンダースコアが2つ前後に
ついてるのはライブラリ内部処理用っぽい気がするんですけど、本当にそうなのか
確証がなくって。
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNGまぁ C だとそういうのもあるが、Java はアクセススコープがしっかり
しているから "__" とかやんなくても良い。俺はめったに使わない。
0417デフォルトの名無しさん
NGNGhttp://gee.cs.oswego.edu/dl/html/javaCodingStd.html#secName
0418デフォルトの名無しさん
NGNGstatic 属性のフィールドでしょう、多分。
自分はこれがあるとすごく見通しが良くなる気がするので自発的にやってるが。
0419デフォルトの名無しさん
NGNGおおいから、クラスフィールドやインスタンスフィールドである事がすぐ
分かるようにしとくため、ということかと。
インスタンスフィールドにはローカルな命名則つかうくらいならthis
つけとくほうがよいかと思うけど。
クラスフィールドはどうしよう。クラス名.フィールドかな。
0420デフォルトの名無しさん
NGNGってそういうことじゃない?
0421デフォルトの名無しさん
NGNGthis.value って意味だと思われ
0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNGとか言ってみる。
0424デフォルトの名無しさん
NGNG肛門から射精します
0425デフォルトの名無しさん
NGNGhttp://www.alles.or.jp/~torutk/oojava/codingStandard/index.html
0426デフォルトの名無しさん
NGNG順番を教えてくれ
0427デフォルトの名無しさん
NGNGstatic public void main
0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNGいや、勝手にフィルタリングすればよかろう。
0431デフォルトの名無しさん
NGNGなぜ皆そろいもそろって日本語が下手なんだろう?
0432デフォルトの名無しさん
NGNG日本語出来る奴はプログラミング言語なんてあっさり覚えますから。
才能が無くても普通の人は本を読んだり試行錯誤したりしながら大きくなる。
少なくともこんな犯罪者まで出る掲示板には来ない。
0433429
NGNGフィルタリングですね。検索して調べてみます。ありがとうございます。
>>431
ごめんなさい。
やりたいことを的確に表現できないんで曖昧な書き込みしかできませんでした。
0434デフォルトの名無しさん
NGNGVMのメモリ使用量が分かればいいと思うんですが・・。
外部のそういうツールを使わないと無理でしょうか?
0435429
NGNG「こんにちわ/ありがとう/ごめんなさい」とコマンドラインから入力して
ありがとう だけ表示させる方法です。
これフィルタリング使えばできそうですか?
0436デフォルトの名無しさん
NGNG0437新車
NGNG受け取るようなメソッドって存在しないんですか?
while分を使って文字ごとにreadしていくしかないんですか?
0438デフォルトの名無しさん
NGNGそれしかないです。
0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNG入力する文字列は毎回同じなのか違うのか。
出力を選ぶ条件は何なのだ。
何を入力しても「ありがとう」と表示するプログラムでも良いのか?
0443429
NGNG入力文字列は毎回違うようにしたいです。
出力を選ぶ条件は、途中で「出力したい番号を選んでください」みたいに
表示させて2を選ぶと「ありがとう」が表示されるようにしたいです。
0444デフォルトの名無しさん
NGNGええと、いままでは1行にまとまった文字列の途中から、一部を
抜き出すんだと皆 思い込んでいたんだが、そうじゃなくて、
「1. こんにちは
2. ありがとう
3. さようなら
番号は?」
とか表示して、「2」と入れたら
「ありがとう」
と表示する、とこういう事だったノカ実は?
0445デフォルトの名無しさん
NGNGもうちょっとやさしく。
相手は「こんにちわ」とか書いてる子供なんだから。
あと、入力の話はどうなった?
0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNGpublic class Thankyou {
public static void main(String[] argv) {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String str = null;
while (true) {
try {
str = in.readLine();
} catch (IOException e) {
e.printStackTrace();
break;
}
if (str != null && str.equals("こんにちは")) {
System.out.println(str);
}
if (str == null || str.equals("quit")) {
break;
}
}
}
}
あたしはてっきりこういうことかと。
0448429
NGNG一行で「こんにちわ/ありがとう/ごめんなさい」をコマンドラインから
入力(文字列の間に/で区切って)後、何個目?と表示して「3」と入れたら
「ごめんなさい」
と表示する感じです。
>>446
頑張っていました・・・
0449デフォルトの名無しさん
NGNGpublic static void main(String[] args){
if(args[0].equals("1"))
System.out.println("こんにちは");
else if(args[0].equals("2"))
System.out.println("ありがとう");
else if(args[0].equals("3"))
System.out.println("さようなら");
}
}
0450デフォルトの名無しさん
NGNGわかった。
1行入力は良いな? BufferedReader#readLineあたりを使う。
String line = reader.readLine();
とか。
次はbeginを0にしといて、
end = line.indexOf('/', begin);
で1文字ずつ'/'の位置を探す。
endが負なら'/'がbegin以後に無いと言うことなので、
line.substring(begin) で文字列が切り出せる。
endが0以上なら、
line.substring(begin, end)で次の'/'の前までを切り出せる。
begin = end + 1; としてこれを繰り返す。
0451429
NGNG中学の宿題で明日提出期限なんです。
いくら考えてもわかりませんでした。。。
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG0454452,453
NGNG思いっきり前に出てるじゃんか。
StringTokenizer
0455デフォルトの名無しさん
NGNG真剣な質問ならこたえたるでー。(寝てなければ)
0456デフォルトの名無しさん
NGNGせっかく436で答えが出てるのになんで、
>いくら考えてもわかりませんでした。。。
なんて答えが返ってくるのかと問い詰めたい。
■ このスレッドは過去ログ倉庫に格納されています