■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 最新50

JAVA神様 かざっさま

1 :アヌス : 2009/01/27 18:37
投稿できなくなってしまったので、新しいスレッドにもう一度貼りますです。

何文字かのstringを受け取ってその文字列の真ん中2文字だけをreturnで返したいのです。文字が奇数の場合は右よりの2文字です。
例) 
middleTwo("abcd") → "bc"
middleTwo("abcde") → "bc"
文字列は必ず2文字以上あると前提しますです。

それともう一つ。取得した数字が奇数ならfalse偶数ならtrueを返すプログラムです。
例)
isEven (24) → true
isEven (25) → false

どうやらこれは、2つのメソッド(真ん中の文字プログラムと、奇数偶数プログラム)をクラスTwoMethodsに書いて、
それぞれのメソッドに、テストメソッドをクラスTwoMethodsTestに書く、というものらしいのですが、プログラムを貼ります。
しかいしくつか抜けてるところがあってそれをコンプリートしなきゃいけないみたいです。



このクラスは、Stringsといくつかの基本となるタイプを処理するメソッドをテストするための2つのメソッドのテストが記されている(日本語がおかしい・・・汗)
import static org.junit.Assert.*;
import org.junit.Test;

public class TwoMethodsTest {
@Test
public void testMiddleTwo() {

//ここにTwoMethodsオブジェクトが要ります//

TwoMethods myFuns = new TwoMethods();

//middleTwoメソッドをテストするための4つのケース//
assertEquals("bc", myFuns.middleTwo("abcd"));
assertEquals("bc", myFuns.middleTwo("abcde"));
assertEquals("23", myFuns.middleTwo("12345"));
assertEquals("pu", myFuns.middleTwo("Computers"));
assertEquals("to", myFuns.middleTwo("to"));
assertEquals("is", myFuns.middleTwo("antidisestablishmentarianism"));
}
//もう一つのテストメソッドを以下に
}

ここからテストされるメソッドのクラス
public class TwoMethods {
public String middleTwo(String arg) {
return "TBA"; //ここのメソッドを変えなければならないようです。
}
//もうちょっといくつかのメソッドを以下に
}

おそらくエラーが出るそうです。JUnit 4はbuild pathにないからだとか。だからJUnit 4をbuild pathに加えないといかんとかなんとか・・・
JUnit testとして実行する。でもassertionはパスしない(赤いバーになる)。
だからTwoMethods.middleTwo(String)を修正する必要があると・・・

次は奇数か偶数かのメソッド。テストメソッドはTwoMethodsTest.javaへ、isEvenメソッドはTwoMethods.javaへ。そして新しいTwoMethodsを作る必要があります。

public boolean isEven(int number)
@Test
public void testIsEven() {
TwoMethods myFuns = new TwoMethods();
assertTrue(myFuns.isEven(24));

//ここにあといくつかassertionを加えたいのです。
assertFalse(myFuns.isEven(25));
みたいな感じでいいのかな。多分他のケースも加えないといかんのかな。

}
自分でも書いてて理解できん・・・。かざっさん、この意味わかる・・・?


100 :アヌス : 2009/02/03 17:07
StringTokenizerは使うなって教授に言われた・・・
Scannerにもともとその機能はあるらしい
Scanner使えるな


101 :大和 : 2009/02/03 22:57
おおそりゃ知らなかった!
勉強になるなあ。
まだまだ私も精進せねば!


102 :アヌス : 2009/02/04 03:27
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
  杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
 杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
  ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
   ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
   ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
  杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
  杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
 杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー


103 :アヌス : 2009/02/04 03:27
コニア画コニア画コニア画コニア画コニア画コニア画
コニア画コニア画コニア画コニア画コニア画コニア画

画アニコ画アニコ画アニコ画アニコ画アニコ画アニコ
画アニコ画アニコ画アニコ画アニコ画アニコ画アニコ

コニア画コニア画コニア画コニア画コニア画コニア画
コニア画コニア画コニア画コニア画コニア画コニア画


104 :ねこみみ : 2009/02/05 20:14
あらされとる


105 :アヌス : 2009/02/06 17:22
         ____
        / 、, ヽ
     ,, -┬ | ^  ^ |┬,-、
   / ,-、,-(:|lこHこl|;)ー--、  ほっほっほっほっほっほっ
    |/|,゙,l| ,,┴ー.vー┴、   ヽ
  /  __|、|/'v'T'~^~Tヽl\   \ ワシを呼んだかのう?
  |   {_Ξ}   ヽ,,,,,,/    \|   |
  \___/T'|'    | ''' |     |  /
     | l゚|     |┿|     |/
     | |l|     |┿|     |┤
    | |'|     |┿|     |┤
     |,__|゙|__,l人l_______|/
      | |,|          |
     `|'|          /
      l|、____λ__/
      !  v    v


106 :大和 : 2009/02/07 01:56
なつかしいAAだw


107 :アヌス : 2009/02/07 07:37
http://www.nicovideo.jp/watch/1231411233

クソワロタwwwwwwwアホダキメェwww


108 :アヌス : 2009/02/07 12:39
お前が車を避けたら事故が起こらなかったんだよ。
ブレーキ踏んだけど、車は直ぐに停まらないんだよ。
停まらない車が悪いんだ。

それから、雨で視界が悪かったんだよ。
雨の日にお前が出歩かなきゃ良かったんだ。

酒?飲ませた店と同僚が悪いんだよ。
付き合いは断れないだろう。
男ならわかるだろう?

お前がちゃんと注意していたら避けられたんだよ。
俺、悪くないよ。

雨の日の朝、青信号を普通に渡っていて跳ねられた俺が
運転者から後日、言われた言葉ににてるなw


109 :アヌス : 2009/02/08 15:49
かざっさん!今プログラムやっててテストメソッド作ってて最初のラインに
import org.junit.test;
import java.util.scanner;
をいれたんだけど、org.junit.testとjava.util.scannerに赤線はいってしまうんですよ。。。
Junit4は追加したのに・・・
解決方法しりませんか?


110 :アヌス : 2009/02/08 16:29
それと、配列の問題やってるんだけど、例えば、配列にいくつかの文字列が入ってて、
各配列の文字数を数えて、変数lenより大きい文字列の入った配列はいくつあるか調べるんですが

例)
stringLongerThan({"a","ab","abc"},0) 3つ全ての配列の文字列の文字数は0よりでかいから3を返す
stringLongerThan({"a","ab","abc"},2) 2より大きい文字数の文字列はabcのみだから1
stringLongerThan({"a","ab","abc","abcd","abcde","abcdef","abcdefg"},3) 3より大きい文字数の文字列は"abcd","abcde","abcdef","abcdefg"の4つだから4


以下のように組んだんだけど、strのところに黄色い線がはいるのです・・・このやり方ダメかな?

流れとしては、例えばstringLongerThan({"a","ab","abc"},2)これを解くとして、
最初の配列"a"の文字数を数え、1文字だからこれは2より小さく無視。
次の配列"ab"の文字数は2.これは2より大きくないから無視。
最後の配列"abc"の文字数は3。2よりデカイからOK。
よって最後の配列1個だけが2よりでかい文字数だったので、1を返します。

できてないかな・・・?Eclipseインスコしたのに実行できないんだ・・・

public int stringsLongerthan(String[] array, int len){

int result2=0;

for(int i=0;i int result1=0;
for(int j=0;j String str=array[i].substring(j, j+1);
result1 ++;
}
if(result1>len)
result2++;
}
return result2;
}


111 :アヌス : 2009/02/08 16:10
それと、配列の中にいくつか文字があって、同じ文字が2つ連続してるのが何回あるかを返します


numberOfPairs({"a", "b", "c"}) ダブりはない→0
numberOfPairs({"b", "a", "a", "b"}) bは連続してない。aが1回連続してる→1
numberOfpairs({"a", "a", "a"}) aが2回連続してる→2
numberOfPairs({"a", "a", "b", "b"}) aが1回、bが1回連続してる→2


以下のようにくんだんだけど、最初のpublic int numberOfPairs(String[] array){に赤線が入って、このメソッドはint型の結果をreturnしなければいけないってでるんだ。最後にreturnしてるんだけど・・・

public int numberOfPairs(String[] array){

int result=0;

for(int i=0;iif(i+1==array.length){
break;
}else if(array[i]==array[i+1]){
result++;
}
}
return result;
}




112 :アヌス : 2009/02/08 16:19
文字列の配列で、例えば({"and", "there", "goes", "another"})なんてのが入ってて、anotherと同じ文字列はあるかどうか調べるときに、

for(int i=0;i if(array[i]=="another")
return true
}

なんていうふうに比較してってもいいん?


113 :アヌス : 2009/02/08 17:12
>>111の赤線は解決しました。しかし>>112でも聞いたけど、文字列の比較ってarray[i]==array[i+1]でいいのかな・・・?


114 :アヌス : 2009/02/08 21:12
はじめString型の配列arrayがあり、配列の最後の要素を削除する場合、

String[] temp = new String[array.length-1]; //一時配列tempを準備して、その配列の要素数をarrayより1つ少なくする。
array = temp; //元の配列arrayに代入

これだけで できますか?

配列arrayの内容が({"A","B","C","D"})の場合 → ({"A","B","C"})こういう結果にできますか?上の表記で


115 :アヌス : 2009/02/08 22:27
>>109も解決しました

>>112のように 配列の中の文字列の比較と
>>114の配列の削除を教えてもらえますか




116 :アヌス : 2009/02/08 22:57
コッコ


117 :大和 : 2009/02/08 23:07
>>114
動作確認してないので間違えていたらごめんね。

>はじめString型の配列arrayがあり、配列の最後の要素を削除する場合、
>
>String[] temp = new String[array.length-1]; //一時配列tempを準備して、その配列の要素数をarrayより1つ少なくする。
>array = temp; //元の配列arrayに代入
>
>これだけで できますか?
>
>配列arrayの内容が({"A","B","C","D"})の場合 → ({"A","B","C"})こういう結果にできますか?上の表記で

String[] array = new String[3];
array[array.length - 1] = null;

でどうかな?エラー吐いたら教えてねー。


118 :大和 : 2009/02/08 23:23
>>112
そうそうまさにそんな感じ!
こういう場合は for をよく使うねー。

for (int i = 0; i < array.length; i++) {
    if ("another".equals(array[i])) {
        return true;
    }
}

String を比較する時は equals() を使うなんてどうでしょ?


119 :アヌス : 2009/02/09 01:28
なるほど、こんなやりかたが。
equals()はarray[i]=="another"とまったく同じ意味?


120 :アヌス : 2009/02/09 01:31
配列の中にある文字列の文字数を数えるときもlengthを使えばいいん?

for(int i=0;i int len = array[i].length();
}

こんな感じに


121 :アヌス : 2009/02/09 01:49
charも同じですか?

for(int i=0;i if(array[i]=='a' || array[i]=='e' || array[i]=='i' || array[i]=='o' || array[i]=='u' || array[i]=='A' || array[i]=='E' || array[i]=='I' || array[i]=='O' || array[i]=='U')


122 :大和 : 2009/02/09 05:02
>>113
大体同じ意味なんですが,ちょっと違いがありますね。

String 型や Integer 型などの参照型の比較が equals()
int 型や char 型などの基本型の比較が ==
だった気がします。間違ってたらごめんね!

>>114
そうそう!配列の時が length
配列の要素数を数えてくれるはずです。たしか!

>>115
char 型は基本型(int, double, char, booleanなど)なので,
== でOKですね!多分!


123 :大和 : 2009/02/09 05:03
早く起きすぎた。
二度寝しよう・・。


124 :アヌス : 2009/02/09 09:43
なるほど。ならequals()にかえたほうがいいのかな

ところでInteger型とint型の違いとはなんでしょう・・・?


125 :大和 : 2009/02/09 15:36
int 型変数と Integer 型変数の違いは,
オブジェクトを参照できるかできないか!です!

int 型変数は 1 とか 100 などの基本型しか代入できません。
×int i = new Integer(); // オブジェクトはむりぽ
×int i = new TwoMethods(); // オブジェクトはむりだお(^ω^)


Integer 型変数は Integer 型オブジェクトを参照できます!
○Integer i = new Integer();

int i = 25; // 25 はオブジェクトではありませんね。
Integer ier = new Integer(25); // 25 という値を持ったオブジェクトを new してますね!


説明になってるだろうか・・。


126 :アヌス : 2009/02/09 15:51
おおなるほど!十分にわかりますですよ!


127 :アヌス : 2009/02/09 16:00
プログラムは全部くんだんですけど(まだ実行してない。)、テストメソッドで赤線エラーが出てしまうのです・・・
たとえば、>>110の問題で、プログラムは以下のように組みました

public int stringsLongerThan(String[] array, int len){

int result = 0;

for(int i=0;i if(array[i].length()>len);
result ++;
}
return result;
}

これのテストメソッドは以下のように組んだんだけど、

public int teststringsLongerThan(){
ArrayFun cf = new ArrayFun();

String[] a1 = {"a","ab","abc"};
String[] a2 = {"a","ab","abc"};
String[] a3 = {"a","ab","abc","abcd","abcde","abcdef","abcdefg"};

assertEquals(3, cf.stringsLongerThan(a1, 0));
assertEquals(1, cf.stringsLongerThan(a2, 2));
assertEquals(4, cf.stringsLongerThan(a3, 3));
}

最初のラインのteststringsLongerThan()に赤線エラーが出てしまいます。
このメソッドはint型の結果を返さないといけない、と表示されます・・・
実はすべてのメソッドにまったく同じエラーがでるんだ・・・
テストメソッドでreturnする必要ないよね・・・?ちゃんとプログラム本体でintの値返してるんだけど・・・


128 :アヌス : 2009/02/09 16:17
あともう一つ、テストメソッドでエラーがでるんだ。問題は、

public char[] replaced(char[] array, char oldChar, char newChar)

配列arrayの中にある文字の中から、oldCharと同じ文字があるかどうか調べ、あったらそれをnewCharの文字と入れ替える、というものです

例)
replaced({'A','B','C','D','B'}, 'C', 'L') 配列の中にCがあるのでそれをLと入れ替える→ return{'A','B','L','D','B'}
replaced({'n','n','n'}, 'T', 'n') 配列の中にTはないので入れ替えない→ return{'n','n','n'}

プログラムは以下のように組みました

public char[] replaced(char[] array, char oldChar, char newChar){

for(int i=0;iif(array[i]==oldChar)
array[i]=newChar;
}
return array;
}

テストメソッドは、以下のように

@Test
public char[] testreplaced(){
ArrayFun cf = new ArrayFun();

char[] a1 = {'A', 'B', 'C', 'D', 'B'};//元の配列
char[] a2 = {'n', 'n', 'n', 'D', 'n'};//元の配列
char[] a3 = {'n', 'n', 'n'};//元の配列

char[] a4 = {'A', 'B', 'L', 'D', 'B'};//入れ替えた後の配列
char[] a5 = {'T', 'T', 'T', 'D', 'T'};//入れ替えた後の配列
char[] a6 = {'n', 'n', 'n'};//入れ替えた後の配列

assertEquals(a4, cf.replaced(a1, 'C', 'L'));
assertEquals(a5, cf.replaced(a2, 'n', 'T'));
assertEquals(a6, cf.replaced(a3, 'T', 'n'));
}

assertEqualsに赤線エラーがでてしまうのですよ・・・。
このタイプのAssertでのassertEquals(Object, Object)は、(int[], void)に適切じゃないと・・・

これは一体どういう意味なのでしょうか・・・?俺assertEqualsのやり方まちがえてる・・・?


129 :アヌス : 2009/02/09 18:48
配列のテストメソッドのassertって普段と違うん・・・?


130 :大和 : 2009/02/09 19:36
ただいまー。
詳しい原因を調べたいから,
>>110のコードをeclipseで動かしてみるね。


131 :大和 : 2009/02/09 20:56
>>127はちゃんと動くね。大丈夫みたいだよー。

public class ArrayFun {

public static void main(String[] args) {
ArrayFun cf = new ArrayFun();

String[] a1 = {"a","ab","abc"};
String[] a2 = {"a","ab","abc"};
String[] a3 = {"a","ab","abc","abcd","abcde","abcdef","abcdefg"};

System.out.println(cf.stringsLongerThan(a1, 0));
System.out.println(cf.stringsLongerThan(a2, 2));
System.out.println(cf.stringsLongerThan(a3, 3));
}

public int stringsLongerThan(String[] array, int len) {

int result = 0;

for (int i = 0; i < array.length; i++) {
if (array[i].length() > len) {
result ++;
}
}
return result;
}
}


JUnit入れてないから main() で動作確認しちゃったけど,
JUnitで動作確認できるように修正してちょっと動かしてみてー。


132 :大和 : 2009/02/09 21:26
>>128だけど,原因は何故かわからないなあ・・。
「JUnit 配列」で検索かけたら.verによっては配列の比較できない,みたいなのが出てきたけど,
原因は不明です・・。

JUnit 配列 - Google 検索:
http://www.google.co.jp/search?hl=ja&q=JUnit+%94z%97%F1


133 :アヌス : 2009/02/09 23:12
ありがとうです!ちょっとティーチャーにきいてみます!


134 :大和 : 2009/02/09 23:14
あい!ありがとう!


135 :anusu : 2009/02/10 09:40
ゃばい!!! 大和さん!! たすけてえ!!!動かないよー!!!


136 :anusu : 2009/02/10 09:44
5 tu no program ga ugokanai...


137 :アヌス : 2009/02/10 11:31
10個のうち5つがなぜか エラーおきます。。。知恵をお菓子下さい!!!


138 :アヌス : 2009/02/10 11:55
つーか先公んとこ行ったら今日は忙しくて微塵も時間がないとか行って追い払われたし・・・アノヤロウ
締め切りあと24時間・・・明日は実験があってマジで時間ないのです・・・


139 :アヌス : 2009/02/10 12:18
>>131
試してみました!できましたよ!ありがとうです!


140 :アヌス : 2009/02/10 18:28
2つほどプログラムが動かないのです・・・
問題はソートです。この問題の場合、配列の中から最大値と最小値を探し、最小値を配列0に、最大値を配列の最後に移動します。その2つ以外の数字の順番は変えません。
例)
{4,3,2,0,1,2} 最小値は0、最大値は4なので→{0,3,2,1,2,4}
{4,3,2,1} → {1,3,2,4}
{1,3,2,4,} → {1,3,2,4}

流れとしては、まず最小値を探し、そのインデックスを保存しておき、それを元に配列0に移動させる。最大値も同様にして、配列の一番後ろに移動させる。

public void sortOfSort(int[] array) {

int count_min = 0;
int min = array[0];

for (int i = 1; i + 1 < array.length; i++) { // 最小値を求める
if (min > array[i + 1]) {
min = array[i + 1];
count_min++; // 数字が入れ替わるたびにカウント。その数字が最小値のインデックス
}
}

int count_max = 0;
int max = array[0];

for (int j = 1; j + 1 < array.length; j++) { // 最大値を求める
if (max < array[j + 1]) {
max = array[j + 1];
count_max++; // 同様に最大値のインデックス
}
}

for (int k = count_min; k - 1 >= 0; k--) { // 最小値を配列の一番前へ
int temp_min = array[k - 1];
array[k - 1] = array[k];
array[k] = temp_min;
}

for (int l = count_max; l + 1 < array.length; l++) { // 最大値を配列の一番後ろへ

int temp_max = array[l + 1];
array[l + 1] = array[l];
array[l] = temp_max;
}
}

どこが間違っているかわかりますか?


141 :アヌス : 2009/02/10 18:30
もう一つはこれでつ・・・

問題)
配列の中の数字で、偶数を全て奇数の前にもって行きます
例)
{1,0,1,0,0,1,1} → {0,0,0,1,1,1,1}
{3,3,2} → {2,3,3,}
{2,2,2} → {2,2,2}

流れとしては、まず奇数の数を数えます。これは何回シフトするから知るためです。
配列0から奇数を探し、あればそれを一番最後の配列へとシフトします。
奇数を探す作業が一度終わっても、まだシフトさせないといけない奇数があるかもしれないので(奇数が連続で並んでる場合)、最初に数えた奇数の数分だけちゃんとシフトするようにします。

public void evensLeft(int[] array) {

int odd=0;

for (int i = 0; i < array.length; i++) {
if(array[i]%2!=0)
odd++; //奇数の個数
}
while (odd>0) { //奇数の分シフトさせる
for(int j=0;j if (array[j] % 2 != 0) { //奇数があった!
for (int k = j + 1; k < array.length; k++) { //その奇数を一番最後に移動
int temp = array[k];
array[k] = array[k - 1];
array[k - 1] = temp;
}
odd--; //奇数のカウントを1減らす
}
}
}
}

これ、やっぱ奇数が連続してる場合、最初の奇数は後ろに行くけど、次の奇数が後ろにいかずに取り残されるみたいで・・・
{3,3,2} の場合、{3,2,3}こうなってしまうのです・・・
わかりますかこれ・・・?


142 : : [ここ壊れてます]
[ここ壊れてます]


143 : : [ここ壊れてます]
[ここ壊れてます]


144 : : [ここ壊れてます]
[ここ壊れてます]


145 : : [ここ壊れてます]
[ここ壊れてます]


146 : : [ここ壊れてます]
[ここ壊れてます]


147 : : [ここ壊れてます]
[ここ壊れてます]


148 :アヌス : 2009/02/10 19:07
やべーー
なんで順番が違うんだ・・・配列移動しない・・・


149 :アヌス : 2009/02/10 21:09
>>140は、はじめから最小値が配列0、最大値が配列の最後にある{1,3,2,4,}の例のときだけエラーを起こす・・・


150 :アヌス : 2009/02/10 21:45
>>141は奇数が連続してる場合やっぱ奇数が左に残ってしまう・・・


151 :大和 : 2009/02/11 01:03
いま沖田産業
よしちょっとやってみよう


152 :大和 : 2009/02/11 03:23
むむむ。>>140はいろいろ付け足すコードがあるっぽいです。
>>140さりげなく難しいねw


153 :大和 : 2009/02/11 03:59
おおこれでちゃんと動いてるはず。
各コードがどう動いてるか確認してみてください。
細かいところは動作確認してないから,間違ってるとこあるかもしれません。
間違ってるとこあったら直しちゃってください。



public class SortOfSort {
    public static void main(String[] args) {
        int[] array = {4, 0, 2, 5, 1, 2, 7};
        sortOfSort(array);
    }
    public static void sortOfSort(int[] array) {

        int counter = 0; // 言葉の説明じゃわかりにくいだろうから,実際に println で出力させてどう動いてるか確認してみてね!
        int count_min = 0;
        int min = array[0];

        // 最小値を求める
        for (int i = 1; i < array.length; i++) {
            if (min > array[i]) {
                min = array[i];
                count_min++; // 数字が入れ替わるたびにカウント
                count_min += counter; // 最小値のインデックスが格納されています
                counter = 0;
                continue; // continue は break と似た処理を行います
            }
            counter++;
        }
        counter = 0; // 次の for 文でまた使うので,0 に戻しておく

//        System.out.println(counter); // 動作確認したければしてくれお(^ω^)
//        System.out.println(count_min);
//        System.out.println(min);
//        System.out.println();

        int count_max = 0;
        int max = array[0];

        // 最大値を求める
        for (int i = 0; i + 1 < array.length; i++) {
            if (max < array[i + 1]) {
                max = array[i + 1];
                count_max++;
                count_max += counter; // 同様に最大値のインデックス
                counter = 0;
                continue;
            }
            counter++;
        }

//        System.out.println(counter); // 動作確認したければしてくれお(^ω^)
//        System.out.println(count_max);
//        System.out.println(max);
//        System.out.println();

        // 最小値を配列の一番前へ
        for (int i = count_min; i - 1 >= 0; i--) {
            int temp_min = array[i - 1];
            array[i - 1] = array[i];
            array[i] = temp_min;
        }

//        System.out.println(array[i]); // 動作確認したければしてくれお(^ω^)
//        System.out.println();

        // 最大値を配列の一番後ろへ
        for (int i = count_max; i + 1 < array.length; i++) {
            int temp_max = array[i + 1];
            array[i + 1] = array[i];
            array[i] = temp_max;
        }

//        System.out.println(array[i]); // 動作確認したければしてくれお(^ω^)
//        System.out.println();

        // 配列が整列されているか調べる
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }

    }
}



154 :大和 : 2009/02/11 04:07
脳内コンパイルできれば作る手間省いてアドバイスできるんだろうけど,
一回一回作らないとどこを修正すればいいか今の私じゃ見当つかないや。
コード見ただけでどこがおかしいかわかる人ってすごいなあ・・。
>>141は眠いので出来ませんでした。。おやすみい。


155 :アヌス : 2009/02/11 13:29
昨日は朝6時過ぎまでこれと格闘してた・・・でも結局できんかったよ・・・
今日大学終わって速攻で帰ったのがついさっき、夜7時過ぎ。締め切りが夜10時だったので、それから取り組んでなんとかできました・・・
参考になりました!ありがとうございます。

今回のでまなんだことは、配列をもう一つよういして、それに代入していく、ということですね。そっちのほうが簡単でいいことがわかった


156 :アヌス : 2009/02/11 13:28
明日大学でプリントしないといけないので、ちょっと借ります

/* This class has ten unrelated method that process primitive types, strings, and array.
* programmer: Misaki Kakita
* Section leader: Matt Swatzell
* Created on Feb 10, 2009
*/

import java.util.ArrayList;

public class ArrayFun {

// This method returns true if the sum of all array elements is greater than
// sum.
public boolean sumGreaterThan(double[] array, double sum) {

double result = 0;

for (int i = 0; i < array.length; i++) {
result += array[i];
}

if (result > sum) {
return true;
} else {
return false;
}
}

// This method returns the number of vowels which could be the letters
// 'a', 'e', 'i', 'o', or 'u' in either upper case or lower case.
public int numberOfVowels(char[] array) {

int result = 0;

for (int i = 0; i < array.length; i++) {
if (array[i] == 'a' || array[i] == 'e' || array[i] == 'i'
|| array[i] == 'o' || array[i] == 'u' || array[i] == 'A'
|| array[i] == 'E' || array[i] == 'I' || array[i] == 'O'
|| array[i] == 'U')
result++;
}
return result;
}

// This method returns the number of times a pair occurs in array.
public int numberOfPairs(String[] array) {

int result = 0;

for (int i = 0; i < array.length - 1; i++) {
if (array[i] == array[i + 1]) {
result++;
}
}
return result;
}

// This method returns the number of Strings with a length greater than len.
public int stringsLongerThan(String[] array, int len) {

int result = 0;

for (int i = 0; i < array.length; i++) {
if (array[i].length() > len)
result++;
}
return result;
}

// This method returns the number of element in an array of Strings that
// equals valueToFind.
public int howMany(String[] array, String valueToFind) {

int result = 0;

for (int i = 0; i < array.length; i++) {
if (valueToFind.equals(array[i]))
result++;
}
return result;
}

// This method modifies the parameter array to place the larger at index n-1
// and the smallest integer at array[0].
public int[] sortOfSort(int[] array) {

int min = array[0];
int max = array[0];
int min_index = 0;
int max_index = 0;

for (int i = 0; i < array.length; i++) {
if (min > array[i]) {
min = array[i];
min_index = i;
}
if (max < array[i]) {
max = array[i];
max_index = i;
}
}

int[] new_array = new int[array.length];

if (min_index == array.length - 1 && max_index == 0) {
int temp = array[min_index];
array[min_index] = array[max_index];
array[max_index] = temp;

return array;
} else {
new_array[0] = min;
new_array[array.length - 1] = max;
int count = 1;
for (int i = 0; i < array.length; i++) {
if (min_index != i && max_index != i) {
new_array[count] = array[i];
count++;
}
}

return new_array;
}
}

// This method modifies the parameter array so it still contains the exact
// same numbers as the given array, but rearranged so that all the even
// numbers come before all the odd numbers.
public int[] evensLeft(int[] array) {

ArrayList gusu = new ArrayList();
ArrayList kisu = new ArrayList();

for (int i = 0; i < array.length; i++) {
if (array[i] % 2 == 0) {
gusu.add(new Integer(array[i]));
} else {
kisu.add(new Integer(array[i]));
}
}
gusu.addAll(kisu);

for (int i = 0; i < gusu.size(); i++) {
array[i] = (gusu.get(i)).intValue();
}

return array;
}

// This method modifies array so it is left shifted n times.
public int[] shiftNTimes(int[] array, int numShifts) {

for (int i = 0; i < numShifts; i++) {
for (int j = 0; j < array.length - 1; j++) {
int temp = array[j + 1];
array[j + 1] = array[j];
array[j] = temp;
}
}
return array;
}

// This method returns a new char[] that is a copy of array with all
// occurrences of oldChar replaced by newChar.
public char[] replaced(char[] array, char oldChar, char newChar) {

char[] array2 = new char[array.length];

for (int i = 0; i < array.length; i++) {
if (array[i] == oldChar)
array2[i] = newChar;
else
array2[i] = array[i];
}
return array2;
}

// This method returns a new String[] that is a copy of array with the first
// occurrence of strToRemove in array not included(if found).
public String[] oneRemoved(String[] array, String strToRemove) {

int i = 0, j = 0, l = 0, count = 0;
String[] array2 = new String[array.length - 1];

for (int k = 0; k < array.length; k++) {
if (strToRemove.equals(array[k])) {
l++;
}
}

if (l != 0) {
while (i < array.length) {
if (strToRemove.equals(array[i]) && count == 0) {
i++;
count++;
} else {
array2[j] = array[i];
i++;
j++;
}
}
}
if (l == 0)
return array;
else
return array2;
}

}


157 :アヌス : 2009/02/11 13:31
* This class has @test method for the all ten method in arrayFun.java.
* Programmer: Misaki Kakita
* Section leader: Matt Swatzell
* Created on Feb 10, 2009
*/

import static org.junit.Assert.*;
import org.junit.Test;

public class ArrayFunTest {

@Test
public void testsumGreaterThan() {
ArrayFun af = new ArrayFun();

double[] a1 = { 1.1, 2.2, 3.3 };

assertEquals(true, af.sumGreaterThan(a1, 4.0));
assertEquals(false, af.sumGreaterThan(a1, 6.6));
}

@Test
public void testnumberOfVowels() {
ArrayFun af = new ArrayFun();

char[] a1 = { 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U', 'x',
'z' };
char[] a2 = { 'y', 'Y' };
char[] a3 = { 'a', 'X', 'a' };

assertEquals(10, af.numberOfVowels(a1));
assertEquals(0, af.numberOfVowels(a2));
assertEquals(2, af.numberOfVowels(a3));
}

@Test
public void testnumberOfPairs() {
ArrayFun af = new ArrayFun();

String[] test = new String[3];
test[0] = "a";
test[1] = "b";
test[2] = "c";
assertEquals(0, af.numberOfPairs(test));

String[] test2 = new String[4];
test2[0] = "b";
test2[1] = "a";
test2[2] = "a";
test2[3] = "b";
assertEquals(1, af.numberOfPairs(test2));
}

@Test
public void teststringsLongerThan() {
ArrayFun af = new ArrayFun();

String[] a1 = { "a", "ab", "abc" };
String[] a2 = { "a", "ab", "abc", "abcd", "abcde", "abcdef", "abcdefg" };

assertEquals(3, af.stringsLongerThan(a1, 0));
assertEquals(1, af.stringsLongerThan(a1, 2));
assertEquals(4, af.stringsLongerThan(a2, 3));
}

@Test
public void testhowMany() {
ArrayFun af = new ArrayFun();

String[] a1 = { "A", "a", "A", "a" };
String[] a2 = { "And", "there", "goes", "another" };
String[] a3 = { "And", "there", "goes", "other" };

assertEquals(2, af.howMany(a1, "A"));
assertEquals(1, af.howMany(a2, "another"));
assertEquals(0, af.howMany(a3, "Not Here"));
}

@Test
public void testsortOfSort() {
ArrayFun af = new ArrayFun();

int[] a1 = {4, 3, 2, 0, 1, 2};
int[] a2 = { 4, 3, 2, 1 };
int[] a3 = {1, 3, 2, 4};

int[] a4 = {0, 3, 2, 1, 2, 4};
int[] a5 = { 1, 3, 2, 4 };
int[] a6 = {1, 3, 2, 4,};

int[] result1 = af.sortOfSort(a1);
int[] result2 = af.sortOfSort(a2);
int[] result3 = af.sortOfSort(a3);

for (int i=0;iassertEquals(a4[i], result1[i]);
}

for (int j = 0; j < result2.length; j++){
assertEquals(a5[j], result2[j]);
}

for (int k = 0; k < result3.length; k++){
assertEquals(a6[k], result3[k]);
}
}

@Test
public void testevensLeft() {
ArrayFun af = new ArrayFun();

int[] a1 = { 1, 0, 1, 0, 0, 1, 1 };
int[] a2 = { 2, 2, 2 };
int[] a3 = { 3, 3, 2};

int[] a4 = { 0, 0, 0, 1, 1, 1, 1 };
int[] a5 = { 2, 2, 2 };
int[] a6 = { 2, 3, 3};

int[] result1 = af.evensLeft(a1);
int[] result2 = af.evensLeft(a2);
int[] result3 = af.evensLeft(a3);

for (int i = 0 ; i < result1.length ; i ++ ){
assertEquals(a4[i],result1[i]);
}

for(int k=0; kassertEquals(a5[k],result2[k]);
}

for(int j=0; jassertEquals(a6[j],result3[j]);
}

}

@Test
public void testshiftNTimes() {
ArrayFun af = new ArrayFun();

int[] a1 = { 1, 2, 3, 4, 5, 6, 7 };
int[] a2 = { 1, 2, 3, 4, 5, 6, 7 };
int[] a3 = { 1, 2, 3 };

int [] a4 = { 4, 5, 6, 7, 1, 2, 3 };
int [] a5 = { 1, 2, 3, 4, 5, 6, 7 };
int [] a6 = { 3, 1, 2 };

int[] result1 = af.shiftNTimes(a1, 3);
int[] result2 = af.shiftNTimes(a2, 0);
int[] result3 = af.shiftNTimes(a3, 5);

for (int i = 0 ; i < result1.length ; i ++ ){
assertEquals(a4[i],result1[i]);
}

for (int j = 0; j < result2.length; j++){
assertEquals(a5[j],result2[j]);
}

for(int k=0; kassertEquals(a6[k],result3[k]);
}
}

@Test
public void testreplaced() {
ArrayFun af = new ArrayFun();

char[] a1 = { 'A', 'B', 'C', 'D', 'B' };
char[] a2 = { 'n', 'n', 'n', 'D', 'n' };
char[] a3 = { 'n', 'n', 'n' };

char[] a4 = { 'A', 'B', 'L', 'D', 'B' };
char[] a5 = { 'T', 'T', 'T', 'D', 'T' };
char[] a6 = { 'n', 'n', 'n' };

char[] result1 = af.replaced(a1, 'C', 'L');
char[] result2 = af.replaced(a2, 'n', 'T');
char[] result3 = af.replaced(a3, 'T', 'n');

for (int i = 0 ; i < result1.length ; i ++ ){
assertEquals(a4[i],result1[i]);
}

for (int j = 0; j < result2.length; j++){
assertEquals(a5[j],result2[j]);
}

for(int k=0; kassertEquals(a6[k],result3[k]);
}
}

@SuppressWarnings("deprecation")
@Test
public void testoneRemoved() {
ArrayFun af = new ArrayFun();

String[] a1 = { "A", "B", "C", "D", "B" };
String[] a2 = { "A", "BB", "CCC", "DDD", "B" };

String[] a3 = { "B", "C", "D", "B" };
String[] a4 = { "A", "BB", "CCC", "DDD", "B" };
String[] a5 = { "A", "C", "D", "B" };

assertEquals(a3, af.oneRemoved(a1, "A"));
assertEquals(a4, af.oneRemoved(a2, "NotHere"));
assertEquals(a5, af.oneRemoved(a1, "B"));
}




158 :大和 : 2009/02/11 18:01
無事期限までに間に合ったみたいだね。良かったよかった。


159 :アヌス : 2009/02/11 19:12
締め切り1時間前になんとかおわりますた・・・


160 :大和 : 2009/02/11 21:46
おつかれさんでした!


161 :ねこみみ : 2009/02/12 22:06
これでAだ


162 :アヌス : 2009/02/13 11:40
おいおい
JAVAのプログラムは毎週出るんだぜ・・・
今も新しいのが出てる・・・来週の火曜までだ・・・
他の課題もあるのに・・・

しかも来週試験ですよ、JAVAの


163 :アヌス : 2009/02/14 20:31
かざっさん。privateというのはマクロみたいなものですか?いまいち、通常の変数の定義とprivateでの定義の違いがわからないのです
privateでの、他のクラスとの関係とか・・・

あと、コレクションってわかりますか?
コンピュータのメモリが記憶できるだけのフロートの数をストアできる空のコレクションを作らないといけないんですけど、コレクションてのがよく理解できなくて・・・
例として、

public DescriptiveStatistics()


publich int size() //コレクションのサイズ。このオブジェクトに追加された要素の数を返す

public void addInOrder(double nNumber)
// nNumberをコレクションに追加。必要条件としてコンピュータはnNumberを足すのに十分なメモリを持っているとする。必要なら配列を増やす。
@param nNumberは、ラウンディングせず、このオブジェクトに追加するためのdatumである。

public double get(int index)
// 与えられたインデックスでの要素をゲッツ
@param 返されるための要素のインデックス





と、このようにメソッドが合計10個あるんだけど、コレクションがよくわからなくてどう組めばいいのかがわからないのです・・・
あとパラメータとかdatumとか・・・わかりますか?


164 :アヌス : 2009/02/14 18:37
AVに出演した妊婦がインタビュー中に意識を失って死亡

http://changi.2ch.net/test/read.cgi/ms/1234520845/l50x

warosu www


165 :大和 : 2009/02/15 12:08
すみませんマシンを新しくしてIDEとか,
何も入れてない状態なので動作確認できませんので,
間違ってたらすみません。

private ってのはアクセス権限のレベルの事です!
public が一番アクセス権限軽くて,デフォルト→protected→private と重くなっていきます。
private は「どのクラスからもアクセスできない」権限レベルっす。

例えば,



例1
public class A {
public static void main(String[] args) {
B instanceB = new B();
instanceB.testMethod();
}
}
public class B {
public testMethod() {
System.out.println("クラスBにアクセスしました。");
}
}



例2
public class A {
public static void main(String[] args) {
B instanceB = new B();
instanceB.testMethod();
}
}
public class B {
private testMethod() {
System.out.println("クラスBにアクセスしました。");
}
}


どうですか?動作確認していないので動かなかったらごめんですが,
例1はクラスBにアクセスできてますが,例2はアクセスできていなくないですか?
これが private と 他のアクセスレベルとの違いですー。


166 :大和 : 2009/02/15 12:13
コレクションは Map とか List の事だねー。
コレクションとは「オブジェクト」を格納する配列みたいなものです。
配列は int 型とか char 型を格納しますが,コレクションは「オブジェクト」を格納するっす!


167 :大和 : 2009/02/15 12:23
>>163
@param は Javadoc に載る項目名っすね!
他には @return とか @author とかあったはずっす。
@param は「//」と同類だと思ってください。あってもなくてもプログラム動作します。
「//」のコメントつけようがつけないが,プログラム動きますよね。それと同類っす。

datum は data と同義語らしいす!
詳しくは↓をご参照くだされ。
http://dictionary.goo.ne.jp/search.php?MT=datum


168 :アヌス : 2009/02/15 12:41
例2では、赤線のエラーがでてコンパイルできないですね


169 :アヌス : 2009/02/15 12:52
B instanceB = new B();
instanceB.testMethod(); ←特にこのつなげ方は・・・?

これって一体どういう意味なんでしょう。
クラスBで public testMethod() こうしてるのは、testMethodをクラスAで定義してクラスBで呼び出してる・・・?


170 :アヌス : 2009/02/15 12:46
オブジェクトっていうのがいまいちなんですが、オブジェクトって配列本体のことじゃない・・・?
本にはそんなこと書いてあったんだけど、
オブジェクトを格納するってどういう意味でしょうか・・・


171 :大和 : 2009/02/15 12:49
こんな感じかなあ(’’。
あ!適当に書いてるので間違えてるかも!間違ってたら暫時直してー。

public DescriptiveStatistics()

/**
* コレクションのサイズ。このオブジェクトに追加された要素の数を返す
*/
publich int size() {
return [コレクションの「総要素数」を int で返す];
}

/**
* nNumberをコレクションに追加。必要条件としてコンピュータはnNumberを足すのに十分なメモリを持っているとする。必要なら配列を増やす。
* @param nNumberは、ラウンディングせず、このオブジェクトに追加するためのdatumである。
*/
public void addInOrder(double nNumber) {
// ArrayList を使うのは間違いない。ただ nNumber の意味が不明瞭
ArrayList list = new ArrayList();
list.add([nNumber?それともnNumber分だけ list.add() を記述しろ?]);
}

/**
* 与えられたインデックスでの要素をゲッツ
* @param 返されるための要素のインデックス
*/
public double get(int index) {
/*
* !?重大なヒントが出ましたね。
* コレクションからの取得方法は「インデックスで取得しろ」とあります。
* つまりコレクションは Map じゃなくて List を使えって事ですね。
* Map は「キーワード」で要素を取り出し,List は「インデックス」で要素を取り出すのです。
*/

// get() の処理の流れ
// [1]addInOrder() で作成した ArrayList から要素を取得し,
// [2]格納されたDouble型の値を double 型にキャストし,
// [3]キャストした double 型を return する。
}

こんな感じ・・かなあ。間違ってる箇所あったら暫時直してね!


172 :大和 : 2009/02/15 13:13
>>168
だよね!意図どおりに動いてくれたか。よしよし。



>>169
あ,ごめーん。ちょっとややこしくしちゃったかも。

testMethod(); だけでもひょっとしたらエラーにならないかも。

えっとね!「B instanceB = new B();」と「instanceB.」は,
別クラスのメソッド・変数にアクセスする際のお作法っす!



>>170
そうそう!!合ってますあってます。
「配列」は「基本型の値」を格納してくれる「オブジェクト」です。
「コレクション」は「オブジェクト」を格納してくれる「存在」です。
配列とコレクションの違いはこんな感じ(わかりにくいね・・)。
配列とコレクションの共通点は「いくつもの要素をまとめて格納させれる事」だよ!
配列とコレクションの役割・使い道はほとんど同じだと思ってくれていいよー。

実際にオブジェクトを格納してみましょうか。

// String 型オブジェクト格納しますね。
ArrayList list = new ArrayList();
list.add("柿田岬");
list.add("今を時めく18歳です");
list.add("趣味はリアル格ゲーです");

変数 list にインデックス「0」に「柿田岬」。インデックス「1」に今を・・って感じで格納されています。



あ・・・。これ書いてて気づきましたが,
これもうワンステップ複雑にしたコレクションの使い方かも・・。
ちょっともう一回>>163の雛形見直します。


173 :アヌス : 2009/02/15 13:10
すいません・・・。ごちゃ混ぜになっちゃった。
少しずつ確認させて下さい

かざっさんの例だと、クラスAからBにアクセスするんだよね?

B instanceB = new B();

これは、まずアクセスしたいクラス名(B)を書いて 変数(instanceB)を書いてnew B()とアクセスしたいクラスを書く・・・?

instanceB.testMethod();

これは、アクセスしたいクラスのメソッド(testMethod())を、クラスAで定義した変数(instanceB)とくっつけて書いたってこと・・・?

構造がわかりずらひ・・・


174 :大和 : 2009/02/15 13:17
>>173
そうそう!これは「他クラスにアクセスする」際のお作法です。

[アクセスしたいクラス名] [変数名] = new [アクセスしたいクラス名]();
[↑の変数名].[アクセスしたいクラスのメソッド名];

です!これがJavaでのお作法ですー。
いえいえ,わからないとこはじゃんじゃん文章化すると良いですから,
どんどんわからないとこは書いてください。


175 :アヌス : 2009/02/15 13:24
なるほど。
[アクセスしたいクラス名] [変数名] = new [アクセスしたいクラス名]();
[↑の変数名].[アクセスしたいクラスのメソッド名];
これは公式として 覚えるしかないのですね・・・

>>163のサイズを返すところで、返すにはreturnを使うのかな・・・。化すんだから当然だと思うんだけど、
ネットで調べてもなんか・・そういう例がなくて・・・



176 :アヌス : 2009/02/15 13:34
今回の課題では、全部で10個のpublicをpublic DescriptiveStatstics()に書かないといかんのですが、
>>163のように、size、 addInOrder、 getのほかに、 average、 max、 min、 range、 median、 standardDeviatioon(数式を使って計算)とあります。
でもこれって、全部一つのクラスに書くんだよね・・・

public class DescriptiveStatstics(){
public DescriptiveStatistic(){
public int size(){
public void addInOrder(double nNumber)
public double get(int index){
public double max(){
public double min(){
public double range(){
public double median(){
public double standardDeviation(){

という感じですね。だから他のクラスにアクセスする必要は・・・あ、もしかしてこれをテストするためのテストメソッドのクラスにアクセスするっていみなのか・・・


177 :大和 : 2009/02/15 13:34
>>175
そうそう合ってるよ!
「void」がついてないメソッドはすべて,「必ず」return させます。

int size() {} とか
boolean isNotNull() {} とかは必ず return します!


178 :アヌス : 2009/02/15 13:35
>>174
ありがとうございますです!
最初のいくつかのメソッドだけちょっと書いてみます。


179 :大和 : 2009/02/15 13:38
ああそうかーなるほどね!
他のメソッド名見てなんとなく全体像わかりました。
となると,やっぱりさっき私が書いた雛形はちょっと部分部分で間違ってるなあ。
がんばって!わからない事が生じたらまた書き込んでねー。


180 :大和 : 2009/02/15 13:41
>>176
そうそうすべてひとつのクラスに書くねー。
だから他のクラスにアクセスする必要はないね。
でもテストクラス作ったら,テストクラスからこのクラス呼び出す時に必要になるね。
がんばってねー(´ω`)。


181 : : [ここ壊れてます]
[ここ壊れてます]


182 : : [ここ壊れてます]
[ここ壊れてます]


183 : : [ここ壊れてます]
[ここ壊れてます]


184 : : [ここ壊れてます]
[ここ壊れてます]


185 : : [ここ壊れてます]
[ここ壊れてます]


186 : : [ここ壊れてます]
[ここ壊れてます]


187 :アヌス : 2009/02/16 17:34
できたけどエラーが一個でる・・・


188 :大和 : 2009/02/17 05:10
まじか・・
あれもう出来あげちゃったのか


189 :アヌス : 2009/02/17 05:34
最後のメソッドがなんかおかしい。テストメソッドは全部ちゃんと動いてるのに、
ネットで提出したら配列[1.0, 2.0, 3.0]でエラーとかなんとか・・・
[1.0, 2.0, 3.0]はテストメソッドで既にためして ちゃんと動いてるんだが・・・
教授にメールしてみよう


190 :大和 : 2009/02/17 06:08
謎だねえ・・。
わからない時はもう人に聞いちゃったほうがいいね!


191 :アヌス : 2009/02/17 18:57
別のメソッドで求めた配列の平均値を最後のメソッドでも使うためにprivateで定義して、引っ張ったんだけど、これがいかんかったみたいで。
最後のメソッドでもう一度平均値を求めたら100%になった。
しかしprivateで定義して、平均メソッドから最後のメソッドに平均値を直接引っ張って使ってもテストメソッドでは問題なかったんだが・・・
なんなんだ・・・一体・・・


192 :アヌス : 2009/02/18 15:49
かざっさん。もしstringに"U of A"と文字列があったら、charAt(1)にヒットするのは、Uとoの間のスペースになるん?


193 :アヌス : 2009/02/18 19:03
かざっさん。
String型の配列の文字列を、インデックス0から順に、char型の配列のインデックス0からの文字と比較したいんだけど

String str = "abcd"
char chars = {'a', 'b', 'c', 'd'};

これはインデックス0から順に比べたらまったく同じ文字が同じインデックスにあることになるけどこういうことってできる?

int j =0;

for(int i=0;i<5;i++){
String c = str.substring(i, i+1);

if(c.equals(chars[i])) ←つまりstringとcharを比較する場合、これでできる?
j++;

}

if(j==5)
return true;
else
return false;


194 :大和 : 2009/02/18 23:46
>>192
そうそう半角スペースがヒットするよ!

>>193
equals() は String 型の値が同じかどうか見るんだー。
char[i] を1回ずつ String型にキャスト(型変換)して,
それからなら出来るはずだよ!

if(c.equals(String.valueOf(chars[i]))←こんな感じだろうか!


195 :アヌス : 2009/02/19 18:51
かざっさん。これだけで→String.valueOf(chars[i]) charをStringに変換してることになるの?


196 :アヌス : 2009/02/19 18:54
それとindexOfなんだけど、

String s = "U of Arizona";と定義した場合、

assertEquals(5, s.indexOf("Arizona")); って通る? sには、インデックスの5番目からArizonaって文字が始まってるからOKなん?
indexOfも、最初の文字はインデックス0から数えるん?




197 :アヌス : 2009/02/19 18:56
それと、assertEquals(0, s.indexOf("U of A")); だったら通らない?
sの中の文字列では、U of Aって文字はインデックス0から始まってるけど・・・


198 :アヌス : 2009/02/19 19:05
もう一つ質問が。hasNext()なんだけど

targetの整数が、scannerの中にいくつあるか調べるために、

Scanner scanner= "1 2 3 4 1 2 3 1 6";
int target;
int count=0;

while(scanner.hasNext()){
if(scanner.nextInt==target)
count++;
}
return count;


このhasNext()の働きがよく理解できないんだ・・・
もしtargetが1なら、scannerの中には1が3つあるから、countが3になるはずなんだけど、
scanner.hasNext()こうすると、scanner.nextIntの中にはインデックス0の数字が代入されてtargetと比較されるってこと?
それともインデックスではなく、自動的に数字が検索されてscanner.nextIntの中に数字が代入されるん?
hasNext()がよくわからないのです・・・


199 :アヌス : 2009/02/19 19:11
またごめん。

もしint型の配列を用意したら、
int a[];
a[i]="";
こういうふうに、int型の配列にスペースはいれられる?スペースって文字扱いになるんだっけ?ならいれられない?

ていうか、"" ←これだとStriingじゃないと無理なのかな。''←これだとchar型のスペース?

int型の配列にスペースをいれる場合、配列をスキップすればいいのかな?

for(int i=0;i<=11;i+=2)
a[i]=1;

こうすれば配列aには、{1 1 1 1 1 1} こういうふうに、数字の間の配列にスペース入れられる?


267 KB
続きを読む

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.php ver2.4 2005/04/13