質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

1256閲覧

Object配列をintに変換するには?

Momomo.

総合スコア22

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2018/06/19 20:42

作りたいプログラム:
ユーザーが選んだ「名前、名字、残高が書かれたファイル」を配列リストに保存します。
それからCheckWriterというクラスを使って残高をアルファベットで表示するというプログラムを書いています。

例)Colin Emblow $294,648
これを
Colin Emblow $294,648 two hundred ninety four thousand six hundred forty eight
と表示させたいのです。

CheckWriterクラスにArrayListから残高(money)だけを抜き取って、それをintに変換してからparameterとして渡したいのですが、Objectからintに変換できないとエラーが出ます。
また、テキストファル内の残高には”$”が数字の前にあるのでそれがエラーの1つの原因かと思い、splitを使って"$"以降の数字をintに変換したいのですが、どうやらsplitが使えないようで困っています…

このArrayListから残高(money)だけを取り出し、intに変換してCheckWriterクラスのParameterとして渡すにはどうすれば良いでしょうか?

読み込みたいテキストファイル:
イメージ説明

実際に書いたプログラム:
1)Main Program

java

1import java.util.ArrayList; 2import java.beans.FeatureDescriptor; 3import java.io.File; 4import java.io.FileNotFoundException; 5import java.io.FileReader; 6import java.io.FileWriter; 7import java.io.IOException; 8import java.io.PrintWriter; 9import java.util.Scanner; 10import javax.swing.JFileChooser; 11 12public class MainProgram { 13 public static void main(String[] args) throws IOException{ 14 Scanner sc = new Scanner(System.in); 15 16 System.out.println("Choose from the menu below"); 17 System.out.println("Menu:\na) Open a file\nb) Save the file\nc) Exit"); 18 String menu = sc.next(); 19 20 switch(menu.toLowerCase()){ 21 case "a": //Open file 22 JFileChooser jfc = new JFileChooser(); 23 int returnValue = jfc.showOpenDialog(null); 24 if (returnValue == JFileChooser.APPROVE_OPTION){ 25 File selectedFile = jfc.getSelectedFile(); 26 TheFileReader fr = new TheFileReader(); 27 display(fr.readFile(selectedFile)); 28 } 29 break; 30 31 case "b": //Save file 32 JFileChooser jf = new JFileChooser(); 33 jf.setDialogTitle("Specify a file to save"); 34 int userSelection = jf.showSaveDialog(null); 35 36 //writeToFile(userSelection); 37 break; 38 39 case "c": //Terminate program 40 System.out.println("-- End --"); 41 break; 42 43 default: 44 System.out.println("Invalid input."); 45 } 46 } 47 48 private static void display(ArrayList<Employee> list){ 49 CheckWriter cw = new CheckWriter(); 50 String[] sp = new String[list.size()]; 51 for(int i=1; i<list.size(); i++){ 52 String tmp = String.valueOf(list.get(i)); 53 for(int j=0; j<list.size(); j++){ 54 sp[j] = tmp.split("$"); 55 cw.convertToWord(Integer.parseInt(tmp)); 56 } 57 } 58 for(int i=0; i<list.size(); i++){ 59 System.out.printf("%-15s %15s %-15d",list.get(1)); 60 } 61 } 62 63 private static void writeToFile(ArrayList<Employee> list, String[] moneyInWord) throws IOException{ 64 JFileChooser jf = new JFileChooser(); 65 jf.setDialogTitle("Specify a file to save"); 66 int userSelection = jf.showSaveDialog(null); 67 68 if (userSelection == JFileChooser.APPROVE_OPTION) { 69 File fileToSave = jf.getSelectedFile(); 70 System.out.println("Save as file: " + fileToSave.getAbsolutePath()); 71 FileWriter fw = new FileWriter(fileToSave,true); //boolean 72 73 PrintWriter pw = new PrintWriter(fw); 74 for(int i=0; i<list.size(); i++){ 75 pw.println(list.get(i)+" "+moneyInWord[i]+"\n"); 76 pw.close(); 77 fw.close(); 78 } 79 } 80} 81} 82

2)TheFileReader

java

1import java.io.File; 2import java.io.FileNotFoundException; 3import java.io.FileReader; 4import java.util.ArrayList; 5import java.util.List; 6import java.util.Scanner; 7import javax.swing.JFileChooser; 8import javax.swing.filechooser.FileSystemView; 9 10public class TheFileReader { 11 12 public static ArrayList<Employee> readFile(File list) { // I need to return an arrayList, so return al at line 49 13 14// cause my constructor name is Employee 15 ArrayList<Employee> al = new ArrayList<Employee>(); // al = arraylist 16 17 JFileChooser jfc = new JFileChooser(); 18 Employee e;// create an empty employee 19 20 String[] temp; // temp array for storing some data 21 Scanner s; 22 try { 23 s = new Scanner(new FileReader(list));// read a file that was inputed by user. 24 while (s.hasNextLine()) { 25 temp = s.nextLine().split(","); 26 e = new Employee(temp[0],temp[1],temp[2]); 27 al.add(e); // cause I need to input an employee constructor to my arraylist, e is my constructor name 28 } 29 s.close(); 30 31 } catch (FileNotFoundException ee) { 32 System.out.println("error: " + ee); 33 } 34 return al; 35 } 36}

3)CheckWriter

java

1 2public class CheckWriter { 3 4 String[] units = { 5 "", 6 "one", 7 "two", 8 "three", 9 "four", 10 "five", 11 "six", 12 "seven", 13 "eight", 14 "nine", 15 "ten", 16 "eleven", 17 "twelve", 18 "thirteen", 19 "fourteen", 20 "fifteen", 21 "sixteen", 22 "seventeen", 23 "eighteen", 24 "nineteen" 25 }; 26 27 String[] tens = { 28 "", 29 "", 30 "twenty", 31 "thirty", 32 "fourty", 33 "fifty", 34 "sixty", 35 "seventy", 36 "eighty", 37 "ninety", 38 }; 39 40 public String convertToWord(int amount){ 41 42 if (amount < 0) { 43 return "minus " + convertToWord(-amount); 44 } 45 46 if (amount < 20) { 47 return units[amount]; 48 } 49 50 if (amount < 100) { 51 return tens[amount / 10] + ((amount % 10 != 0) ? " " : "") + units[amount % 10]; 52 } 53 54 if (amount < 1000) { 55 return units[amount / 100] + " hundred" + ((amount % 100 != 0) ? " " : "") + convertToWord(amount % 100); 56 } 57 58 if (amount < 1000000) { 59 return convertToWord(amount / 1000) + " thousand" + ((amount % 1000 != 0) ? " " : "") + convertToWord(amount% 1000); 60 } 61 62 if (amount < 1000000000) { 63 return convertToWord(amount/ 1000000) + " million" + ((amount % 1000000 != 0) ? " " : "") + convertToWord(amount % 1000000); 64 } 65 66 return convertToWord(amount / 1000000000) + " billion" + ((amount % 1000000000 != 0) ? " " : "") + convertToWord(amount % 1000000000); 67 } 68 }

4)Employee

java

1 2public class Employee { 3 private String fName; 4 private String lName; 5 private String money; 6 7 public void setFName(String fName){ 8 this.fName = fName; 9 } 10 11 public void setLName(String lName){ 12 this.lName = lName; 13 } 14 15 public void setMoney(String money){ 16 this.money = money; 17 } 18 19 public String getFName(){ 20 return fName; 21 } 22 23 public String getLName(){ 24 return lName; 25 } 26 27 public String getMoney(){ 28 return money; 29 } 30 31 public Employee(){ //default 32 fName = "Dont know"; 33 lName = "Dont know"; 34 money = "0"; 35 } 36 37 public Employee(String m){ 38 money = m; 39 } 40 41 public Employee(String fName,String lName,String money) { // three parameters 42 this.fName = fName; // put user input to your fName in your constructor 43 this.lName = lName; // same as above, but different value here(lName) 44 this.money = money; // same as above, but different value here(money) 45 } 46 47 @Override 48 public String toString() { 49 return String.format( 50 "%s\t%s\t%s\n", fName, lName, money 51 ); 52 } 53 54 55} 56

エラー:
現在このプログラムを実行し、メニューで
a)Open a file
を選択した場合にはこのようなエラーが現れます。

イメージ説明

ネットでエラーの意味も検索しましたし、splitやsubstringなどのメソッドも試しましたがうまくいかず困っています。
どうか解決方法がわかるかた、助けていただけませんか?
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/06/19 21:51

ここ最近4つの質問の傾向として、エラーの読み方を覚える気がないのかな?
Momomo.

2018/06/19 21:57

エラーの意味も検索したと書いたのですが、お読みいただけてますでしょうか?プログラミングを始めたばかりでエラーの意味を検索したり先生に聞いたり、自分で思いついた方法で直す努力をして、たくさん考えてそれでも解決できなかった時にこちらで質問させていただいています。この問題も自分で何時間も考えて解決できなかったので質問しています。どんな部門でも初心者の知識やスキルでは解決できないことがあると思います。そういう時に先輩方に助けていただけるサイトだと思ったのですが、間違っていますか?
Momomo.

2018/06/19 21:59

困った時に教えてもらって自分ではわからなかった解決方法を勉強できたらそこから次に同じ問題に遭った時に自分で解決できるようになるのではないですか?
m.ts10806

2018/06/20 00:29

学校の課題なら自分でやろう。習ってきたことの中にヒントが本当に何もないか?考えてみてください。小学生に対して何の授業も前触れも無く高校生がやるような宿題を課す先生などいません。「検索した」「うまくいかず」だけでは何をやって何がおきたのか誰もわかりません。先生と違ってあなたの一挙手一投足を見ている人はここには誰もいません。
swordone

2018/06/20 01:06

このエラーのどこをどう読んだら「Objectからintに変換できない」と解釈できるのか?
Momomo.

2018/06/20 05:17

学校の課題だとどこに書きましたか?これはクラスで「このようなプロジェクトを自主的にやると次のレベルのクラスの予習になって良い」と紹介された問題の一つです。私は海外の大学でプログラミングの授業を受けています。日本人の先生と教え方が違うかもしれません。こちらではほとんどのトピックは自主的に教科書を読んで学ぶ前提で授業が進みます。先生は特に重要なトピックのみのデモをするだけです。あなたは私の先生の授業を受けたことがありますか?世界中の全員の先生の教え方を見てきたんですか?また、質問に「splitやsubstringなどの(習った知識を)使っても解決できなかった」と明確に記載してあります。何をやったのかこれでもわかりませんか?私の一挙手一投足を見てくださいと言いましたか?私は単純にプログラミングでわからなかった質問をここに書いただけです。ここには知識豊富な先輩方がたくさんいるようなので勉強になると思ったからです。自分で書いたプログラムを質問文に載せていますよね?これのどこが自分でやっていないことになるんですか?海外の同じようなサイトではこのような批判は普通起きませんよ。わからないことがあるときは知識のある人に聞いて学ぶことが普通だと理解されているからです。日本語の方が説明していただいた時に理解しやすいと思いこちらに質問を投稿していますがこんな風に初心者の学習意欲を奪う人が多くいるとは思いませんでした。質問に答えたくないのならばいちいち批判コメントを書かずにスルーすれば良いのでは?
Momomo.

2018/06/20 05:26

自分で解決できない疑問を投稿しただけなのに、しかもあなたに質問を押し付けた訳ではないのに、1から100までどれだけ解決するため努力したか説明しないと質問したこと自体を批判される文化なんですね。学校で出された問題は質問したらダメな文化なんですね。知りませんでした。大変勉強になりました。ありがとございました。
m.ts10806

2018/06/20 05:27

えらく思い込みで突っ走られているようですが、まず落ち着いてください。誰もあなたが海外の大学でどうのこうのは知りませんよ。「学校の先生が~~」とあったので「仕事や趣味ではない」と判断したまでです。批判コメントをしたのではなく、teratailの「質問するときのヒント( https://teratail.com/help/question-tips )」に書かれている内容にそぐわない部分があったので「指摘」しただけです。「学校」ということは何かしら学んできた・授業などを受けてきた結果があって何かしら課題に取り組んでいるのだろう、というのはほとんどの人が予想するものです。あなたの状況は誰も知らないわけです。それなら最初にそのコメントで書かれたことを前提として書かれては?おおよそ日本在住の利用者が多いことは容易に想像がつくと思いますので、その辺りは念頭に入れて質問すべきと思いますよ。別にあなたの学習意欲をそごうなんて気はありません。あくまでこのサイトのルールが前提です。「サポートセンターではない」「課題・宿題代行ではない」「作業依頼を請け負うのではない」というのがこのteratailの大前提です。
m.ts10806

2018/06/20 05:30

「答えたくない」のではなく「宿題・課題代行の気があるので回答対象にはなりにくい(場合による)」というだけです。そこは間違えないようにしていただければと。
m.ts10806

2018/06/20 05:36 編集

後出しは回答者のやる気を奪うので厳禁ですよ。これも覚えておいてください。前提や背景が特殊すぎます。
Momomo.

2018/06/20 05:36

あなたの方こそ思い込んでいるのでは?「ほとんどの人が予想するもの」と、ご自身が実際に知っている訳ではないことを前提に指摘なさっていますよね。プログラミングについての質問をする場所ですよね。私の状況を知る必要がありますか?説明書読みましたよ。私は作業依頼などしていません。宿題代行をお願いしていません。サポートセンターとして使ったつもりなどありません。自分で1からプログラムを書き、エラーを直すためにみなさんと同じように検索し、本を読み、知っている限りのことを試し、それでも分からなかったので、「どうすれば解決できるか知っているかたはいますか?」と質問させていただいたのです。ただそれだけです。
Momomo.

2018/06/20 05:41

「前提や背景が特殊」な私は質問してはいけないのですか?私は単純に自分の疑問を解決したくて投稿しただけでした。ただそれだけです。どうやら私がどう説明してもあなたは理解してくださらず否定的なようなのでもう結構です。言い合いのようでお互い気分が悪いと思いますのでもうやめましょう。
Momomo.

2018/06/20 05:42

どんな形であれあなたが時間を割いて私の投稿を見てくださったことに変わりはないので、それに対してはお礼を言わせてください。ありがとうございました。
m.ts10806

2018/06/20 05:45

自身で長文書かれる割には他人が書いたコメントはちゃんと読まれないんですね・・・良くないですね。説明書もちゃんと読んでなさそうです。不明点あれば聞いてくだされば良いのですが・・・。大きく勘違いされてますが、別に私は喧嘩をしたいわけではありません。説明書読まれた割には一番最初に指摘を受けていますよ。「質問するときのヒント」から抜粋しますね。  「あなたがそのようなつもりで質問しているのだと他のユーザーから誤解されないように、丁寧な質問を心がけましょう。」(→「学校で」と出した時点でその辺りをきちんと説明する必要があります) 「検索して見つけたページでわからない事があれば、どのページのどの部分がわからないのかを明確に記し質問してみてください。」(→この部分が全く抜けています) 「「○○がうまく動きません」という質問をしたのに、逆に「どういう現象がおきましたか?」という質問ばかりがきてしまう。 これは、実際今何が起きていてどうなっているのかが書かれていないために起こります」(→もし試した結果同じ現象が起きているならその旨を書かないと分かりません) 「テンプレートを利用しましょう」(→利用されていません。その前の「マークダウンを活用」についてもコード以外で使ってもらえたらもう少し読みやすくなるんですが・・) 「自分が投稿した回答が役に立ったのか、結局どのように解決したのかを気にしています。」(→今のところお礼もどのように解決したかのコメントもありません)
m.ts10806

2018/06/20 05:49 編集

否定ではなく、あくまでteratailのルールにのっとっての「指摘」であるところ、誤解なきよう。私情は全くございません。
m.ts10806

2018/06/20 05:48

質問内容自体は別に悪いとは思わないので(asahina1979さんの指摘は気になりますが)勿体無いなと思った次第です。
m.ts10806

2018/06/20 06:00 編集

重箱の隅をつつくような行為にて、不快な思いをさせてしまい申し訳ありませんでした。
Momomo.

2018/06/20 06:10

最後に2つだけ言わせていただくと、過去に質問した際に海外の大学で授業を受けていること、先生が質問になかなか答えてくださらず疑問点が疑問点のままで困っていることなどの状況説明を書いたことがあります。するとある回答者の方から「そんなことは聞いていない」と言われてしまいました。それ以来プログラミング以外のことは書いても不必要だと見なされると思って書かなくなりました。書いても書かなくてもきっとどなたかには「指摘」されるのだと思います。また、このように丁寧に私が改善すべき点を挙げてくださればこちらも「次回は気をつけよう」という気持ちになれますが、「良くないです」「あなたの一挙手一投足を見ている人はここには誰もいません」「ちゃんと読んでなさそうです」という書き方をされてしまうと、どうしても批判されている、怒られているという気持ちになります。私も回答者さまたちの気持ちが分かっておらず質問の仕方に改善点がたくさんあるようで申し訳なかったです。しかし回答者さまたちも質問者が批判されたと捉えるようなコメントではなく分かりやすく改善すべき点を指摘してくだされば質問者側も(きっとこのように質問の仕方に改善が必要な利用者は私だけではないと思います)気持ちよく改善することができると思いますしお互い気持ちが良いのではないでしょうか…?
Momomo.

2018/06/20 06:12

今後こちらのサイトで質問させていただくことがあればご指摘いただいた点を参考に質問の仕方を改善します。前回の長文内で分かりやすく改善点を教えていただきありがとうございました。
m.ts10806

2018/06/20 06:21 編集

文字では気持ちが汲み取れないので難しいところですよね。他の人は知りませんが、私はルールに則った指摘しかしていませんので、その辺は汲み取っていただければ。その辺りは既に書いていて言及されないので「読んでなさそう」と判断しています。思い込みでもなんでもありません。もちろん淡々とコメントしているので誤解を生むこともないわけではないですが、その都度認識を確認すれば良いと思っています。「そんなこと聞いてない」というのはどういう状況でそのような指摘をされたか知りませんが、「サポートセンターとして利用しようとしているのではない」「学校の課題や宿題の代行を頼もうとしているのではない」「仕事の依頼をしようといるのではない」というのを”誤解させないためにも” 自身が特殊な環境化であることは前提として質問本文に最初に書いておいて良いかと思いますよ( https://teratail.com/help/question-tips#questionTips1-1 >あなたがそのようなつもりで質問しているのだと他のユーザーから誤解されないように )。後から出されたら今回・またはそのときのように「そんなこと聞いてない」と言われるのは当然です。「前提条件」として必要な情報と、私はMomomo. さんの状況を聞いて思いました。
guest

回答2

0

ベストアンサー

単純に、strigの中から'$' と','を削除して、数字だけ残して変換したらどうでしょう?
・・・私ならstringを受け取って、intを返すクラスを作りますが・・・
あと、intの範囲は超えないのですよね?
「追記」
jvaは詳しくない&netbeabsでの実行結果ですが・・・

java

1/* 2 */ 3package javaapplication1; 4 5/** 6 */ 7public class JavaApplication1 { 8 // 9 private static int s2i(String str){ 10 int a=0; 11 // 12 for( int i= 0; i < str.length(); i++){ 13 char ch= str.charAt(i); 14 if( ch == '$' || ch == ','){ 15 continue; 16 } 17 a *= 10; 18 a += ch - '0'; 19 } 20 21 return a; 22 } 23 24 /** 25 * @param args the command line arguments 26 */ 27 public static void main(String[] args) { 28 // TODO code application logic here 29 System.out.println(s2i("$41,713,889")); 30 } 31 32} 33

run:
41713889

投稿2018/06/19 21:44

編集2018/06/19 23:10
cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Momomo.

2018/06/19 21:50

stringを受け取ってintを返すというのは、ArrayListに保存せずにということでしょうか、、、? 初心者なのでなかなか理解できず申し訳ないです。 intの範囲を超える可能性もあるのですが、超えた場合にどうすれば良いかわからないのでとりあえずintの範囲内で変換するプログラムを書いています。
退会済みユーザー

退会済みユーザー

2018/06/19 22:03

int の範囲を超えるならより広い範囲の プリミティブ型の数値を使えばいいだけだろう
Momomo.

2018/06/19 22:05

それでも無限にはなりませんよね? もしも単位がquadrillionだった時にCheckWriterクラスを含めどうすれば良いかわからないのでまずはじめにintの範囲でプログラムを完成させたいのです。
退会済みユーザー

退会済みユーザー

2018/06/19 22:37 編集

アメリカの国家予算ですら及ばない金額を扱うのでしょうか? (アメリカ国家予算 円計算) 2.10*(10^12) (プリミティブ型上限疑似値)1.79*(10^308) こっちにした方がわかりやすいか
Momomo.

2018/06/19 22:38

私もquadrillionは大きすぎると思うのですが、学校の先生がどんな単位でも変換できるようにと。。。どんな意図かはわかりませんが(>_<)
Momomo.

2018/06/19 22:40

先生曰く数値ではなくStringとして考えればどんなに大きな数字でもアルファベットに変換できるだろうと。。。
Momomo.

2018/06/19 22:45

わかりやすく書き直してくださってありがとうございます!
退会済みユーザー

退会済みユーザー

2018/06/19 22:48

講師も講師なのか、 doubleの扱える上限は「無量大数」以上「無限大未満:疑似地として MAX_VALUE を超える値は無限大とする」 まあ3桁区切りと [thousand,million,billion,quadrillion ...]の関係性がわかってれば short でいけるんだけどね
Momomo.

2018/06/19 22:54

3桁ずつに分けて単位をあとで足したら良いというわけですよね…? 挑戦してみます!
swordone

2018/06/20 02:16

それでも3桁ごとの単位は用意しなければいけないので、いずれにせよ無限には対応できない。
退会済みユーザー

退会済みユーザー

2018/06/20 02:34

あーたしかに 10^123 のつぎ10^153 だ・・・ これ以降30ずつアップ (Quadragintillion,Quinquagintillion) 10^603のつぎは10^903 だ・・・ これ以降300ずつアップ (Ducentillion,Trecentillion) 10^3003 (Millinillion) で打ち止めか
swordone

2019/09/27 17:44 編集

BigIntegerだって、一応上限(2^Integer.MAX_VALUE)ありますからね… (10進数で6億桁以上)
退会済みユーザー

退会済みユーザー

2018/06/20 05:52

BigInteger であふれる通貨でってどこのジンバブエだろう・・・
Momomo.

2018/06/20 06:15

気づかないうちにコメント欄が知らない言葉で溢れていました^^; 検索しますね。勉強させていただきありがとうございます。 (次に先生に会った時に「BigIntegerで溢れる国なんて無いですよ」と言ってみようと思います!)
Momomo.

2018/06/20 06:18

cateyeさん、一番早い回答をありがとうございました。 charを使う方法は考えつきませんでした。 (ずっとStringで$をexcludeする方法ばかり考えていました。。。) 自分と違う見方を知れて大変勉強になりました!
Momomo.

2018/06/20 06:19

asahina1979さん、swordoneさん、コメント欄でのディスカッションを読んでこちらも良い勉強になりました。
cateye

2018/06/20 07:00

どうもc++が抜けないので^^; javaらしくないコードかもしれませがお役に立ててよかったです。
guest

0

エラーの原因は、Stringの配列をStringに変換しようとしていること。それをやっているのがdisplayメソッド内のここ。

java

1sp[j] = tmp.split("$");

String#splitの結果はStringの配列で、代入先であるsp[j]はString配列の一要素、つまりStringです。代入の型が合ってないのでエラーになります。

ってか、コンパイルエラーなんだから実行するときに何かしら警告が出たはずですが、無視して実行したんでしょうか…?

投稿2018/06/20 02:25

swordone

総合スコア20649

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Momomo.

2018/06/20 06:27

分かりやすい説明をしてただきありがとうございました。 コンパイルエラーの件ですが、splitを使ったら「Stringの配列をStringに変換できない」エラーが出て、配列をStringに変える方法を示唆されました。(Eclipse内で) それに従いStringに変えるとまた別のエラーが出て、splitをsubstringに変更して試してもまたコンパイルエラーで、他にもStackOverflowに書いて会った方法を試したりしましたがまた別のエラーが出て、数時間たっても解決できなかったので、自分で書いたプログラムをそのまま実行しエラーのスクリーンショットを撮って投稿したのです。 (上級者の方はエラー表示を見ただけでおおよそエラーの理由がわかるのでどんなエラーか載せるようにとの記述を読みましたので、それに従ってみたのです。。。)
swordone

2018/06/20 07:32 編集

各々のメソッドが何をしているのか理解しないまま、あれこれいじってもまったく意味がありませんよ。 Eclipseは「とりあえずここのエラーをなくすための提案」をしているに過ぎず、ロジックがどうとか要件がどうとかは一切考慮していません。 (Eclipseが提案したという配列をStringに変える方法も、大方toString()をつけるとかそういうものだったのではないですか?) 結局、「何をどうしたいか」の方向性が固まっていないため、そんな変なことになっているのです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問