1ヶ月前に出されたjavaの課題でどうしてもわからなく投稿させて頂きました。正直自分の力で解決するべきだと思いますが初めてjavaに触れるので全く分からず投稿しました、どうかご教授下さい。
コンパイルしたのですが01,06,99以外の処理に全てエラーが出てしまいます。07,08に関しては最初の頭の数で昇順、降順されてしまいます。。
実行クラスはパート(2)に載せます。
import java.util.ArrayList;
public class A21_StrArray {
ArrayList<String> list = new ArrayList<String>();
public void add(String data){ //要素追加
list.add(data);
}
public void set(int index, String data){ //指定インデックスがない場合エラー
list.set(index,data);
}
public String get(int index) throws IndexOutOfBoundsException{ //指定インデックスがない場合エラー
String str;
str = list.get(index);//指定文字列を取得
return str;
}
public void clear(){ //要素クリア
list.clear();
}
}
import java.util.Collections;
public class A22_StrArray extends A21_StrArray{
public String[] getAll(){
String[] all = new String[list.size()]; //全ての要素を配列で取得
for(int i=0; i<list.size(); i++){
all[i] = super.get(i);
}
return all;
}
public int getIndex(){ //要素数を取得
int item;
item = list.size();
return item;
}
public static final int ASC_SORT = 0; //昇順ソート
public static final int DESC_SORT = 1; //降順ソート
public void sort(int mode){ //引数 mode ASC_SORT, DESC_SORT
if(ASC_SORT == mode){
Collections.sort(list);
}
else if(DESC_SORT == mode){
Collections.reverse(list);
}
}
}
以下ファイルの引数は全てpath
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class A23_StrArray extends A22_StrArray{
public void readFile(String path)throws Exception{
try{
FileReader in1 = new FileReader("path"); //テキストファイルの読み込み(上書きモード)
int ch;
while ((ch = in1.read()) != -1){
System.out.print(Integer.toHexString(ch) + " ");
}
in1.close();
}catch (IOException e) {
System.out.println(e);
}
}
public void readFile(String path , boolean modeAdd)throws Exception{ //テキストファイルの読み込み(追記/上書きモード)
try {
BufferedReader br1 = new BufferedReader(new FileReader(path));
String str1 ;
if(modeAdd == true){
while ((str1 = br1.readLine()) != null) {
list.add(str1);
}
br1.close();
}
if ( modeAdd == false){
list.clear();
while ((str1 = br1.readLine()) != null){
list.add(str1);
}
br1.close();
}
}catch (IOException e){
System.out.println(e);
}
}
public void writeFile(String path)throws Exception{ //テキストファイルの書き込み(上書きモード)
try{
FileWriter wr1 = new FileWriter("path");
String str2 = null ;
wr1.write(str2);
wr1.close();
}catch (IOException e) {
System.out.println(e);
}
}
public void writeFile(String path,boolean modeAdd)throws Exception{ //テキストファイルの書き込み(追記/上書きモード)
try{
BufferedReader br2 = new BufferedReader(new FileReader(path));
String str3 ;
if(modeAdd == true){
while ((str3 = br2.readLine()) != null) {
list.add(str3);
}
br2.close();
}
if(modeAdd == false){
list.clear();
while ((str3 = br2.readLine()) != null){
list.add(str3);
}
br2.close();
}
}catch (IOException e) {
System.out.println(e);
}
}
}
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
気になる点を回答します。
文字数制限からかと思いますが、・必要なプログラムの箇所
・エラーメッセージの内容
・わからないこと、期待する結果
をまとめて1つの質問でしていただければと存じます。
*public void readFile(String path , boolean modeAdd)throws Exception{ //テキストファイルの読み込み(追記/上書きモード)
追記モードでの読み込みにおいて、try~catchがありません。
というより、共通化できそうです。ファイルを読む前に、modeAddを判定して、上書きモードならばリストをクリアすればよいので。
*public void writeFile(String path)throws Exception{ //テキストファイルの書き込み(上書きモード)
プログラムはできているようですが、何を書けば良いのかわかりません。理由は実装を見るとこのようになっているためです。
String str2 = null ;
wr1.write(str2);
*public void writeFile(String path,boolean modeAdd)throws Exception{ //テキストファイルの書き込み(追記/上書きモード)
writeFileメソッドにwriterが見つかりません(Readは入力、Writerが出力)
プログラム内容は、ファイルから一行ずつ読み込んで、リストに格納する定義に見えます。
*ソートは期待する結果がわからないので回答出来ません。
なるほど~やっぱりあなたのようなこれを見ただけである程度回答を導ける方がいらっしゃるのですね。
実は質問パート(2)を出しているのですがそれが実行クラスです。
なんか課題二日ほぼ寝ないでやったら8割できちゃいました(*´∀`*)
ただこのように細かい所を直さねばと思いますので大変参考になりました、早速共通化試してみます(^-^)
ありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# クラスのメンバ変数を基準に並べ替えをしたい 5 2022/12/25 17:40
- Java java final 1 2022/06/10 22:49
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エンターキーを押すとOKボタン...
-
ペイントソフトを作っているの...
-
GetDIBits関数の使い方について
-
C#で、あるクラスのメンバーす...
-
C#から、C++で作成したdll内の...
-
マルチスレッドプログラムから...
-
大量のデータを読み込んで表示...
-
JButtonの画像をactionPerforme...
-
C#で別のFormへ複数の値を返そ...
-
Junitテストでvoid戻り値メッソ...
-
C# LISTBOXの複数項目取得
-
C# visibleプロパティをfalseに...
-
struts2のchainで値の受け渡し...
-
Javaの課題について質問です。...
-
パスがとおらない・・・
-
unityでのC++エラーの原因がわ...
-
Log4jで機能毎に別ファイルへ出...
-
flush()とclose()について
-
C言語のポインターに関する警告
-
IF関数でEmpty値を設定する方法。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
ボタンの複数割り当てについて
-
C#で、あるクラスのメンバーす...
-
Junitテストでvoid戻り値メッソ...
-
C#でのWNetAddConnection3の使...
-
C# 矢印キーの取得
-
Thread.sleepのInterruptedExce...
-
unityでのC++エラーの原因がわ...
-
C#で別のFormへ複数の値を返そ...
-
C# visibleプロパティをfalseに...
-
エンターキーを押すとOKボタン...
-
Processingでマウスクリックで...
-
[C#.net]スレッド化された別フ...
-
C#でキーイベントが発生しない...
-
C# DataGridView列カスタマイズ
-
【C#】ソースコードをファイル...
-
LVM_SETITEMSTATEでListViewの...
-
GetDIBits関数の使い方について
-
未割り当てのローカル変数
-
C# MouseHoverを何度も呼ぶには
おすすめ情報