C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 大学の課題でメソッドの作成を出されました。


(過去ログ 112 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■66633 / inTopicNo.1)  大学の課題でメソッドの作成を出されました。
  
□投稿者/ ぎゃおっぴー (1回)-(2013/05/12(Sun) 22:31:38)

分類:[.NET 全般] 

大学の課題でプログラムを作ったのですが、コンパイルがうまく通りません。

《問題文》
長い文字列の先頭の5文字と最後の5文字をプリントし、その間に.....(5つのドット)をプリントするメソッドw作成しなさい。これらは3行に分けてプリントする

"Hellomynameistakeshi"という文字列なら
Hello
.....
keshi
とプリントする

そして以下が私の作ったプログラムです

class period
{

void exchange(char[] dst){
int i=0;
int k=0;
while(dst[i]!=0){
k++;
}

for(int i=0;i<5;i++){
System.out.plint(dst[i]);
}
System.out.println();
for(int i=0;i<5;i++){
System.out.print('.');
}
System.out.println();
for(int i=k-5;i<k;i++){
System.out.print(dst[i]);
}

}
}
class report2-2
{
public static void main(String args[]){

period p;
p=new period();

p.exchange("abcdefghijklmnopq");

return 0;
}
}

エラーメッセージは以下のとおりです。
period.java:25: エラー: '{'がありません
class report2-2

どこかおかしいところがあるんでしょうか?
エラーに出た25行目は何も問題ないように見えます。
原因がわかりません。
提出期限が明日までなので急いでいます。
助けてください。
よろしくお願いします。
引用返信 編集キー/
■66634 / inTopicNo.2)  Re[1]: 大学の課題でメソッドの作成を出されました。
□投稿者/ ぎゃおっぴー (2回)-(2013/05/12(Sun) 23:24:12)
すみません、新たに書き直しました。


class period
{

void exchange(char dst[]){
int i=0;
int k=0;
while(dst[i]!=0){
k++;
}

for(i=0;i<5;i++){
System.out.print(dst[i]);
}
System.out.println();
for(i=0;i<5;i++){
System.out.print('.');
}
System.out.println();
for(i=k-5;i<k;i++){
System.out.print(dst[i]);
}

}
}
class report22
{
public static void main(String args[]){

period p;
p=new period();
char[] a;
a=new char[100];
a="abcdefghijklmnopq";
p.exchange(a);


}
}

エラーメッセージは以下のとおりです。
reoprt22.java:33: エラー: 互換性のない型
a="abcdefghijklmnopq";
^
期待値: char[]
検出値: String
エラー1個


仮引数の型が違うのですかね?
よろしくお願いします。
引用返信 編集キー/
■66635 / inTopicNo.3)  Re[2]: 大学の課題でメソッドの作成を出されました。
□投稿者/ もりお (7回)-(2013/05/12(Sun) 23:51:57)
2013/05/12(Sun) 23:54:34 編集(投稿者)
No66634 (ぎゃおっぴー さん) に返信

> reoprt22.java:33: エラー: 互換性のない型
>         a="abcdefghijklmnopq";
>           ^
>   期待値: char[]
>   検出値:    String
> エラー1個

aの型はchar[]です。
"abcdefghijklmnopq"の型はStringです。
=演算子の左辺と右辺の型が異なっていて互換性がないですよーということだと思います。

関数exchangeの引数の型はchar[]なので
"abcdefghijklmnopq"をchar[]にして渡せばよいです。
StringにはStringをchar[]に変換するtoCharArray()メソッドがありますので、
これを使えば"abcdefghijklmnopq"をchar[]に変換できます。


> int k=0;
> while(dst[i]!=0){
>     k++;
> }

dstの長さを求めようとされているのかなと思いますが、
iの値が変わらないので無限ループになります。
長さはchar[]のlengthフィールドで得ることができますので、これを利用するのがよいと思います。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -