• 締切済み

動くようにプログラムしてください

public class HTMLDocument { private String source; public void setSource( String html ) { if ( html.indexOf("<html>") == 0 ) source = html; } public String getSource() { return source; } public void showPlainText() { (必要なコードをここに書く) } } コンパイルはできますがメインメソッドがないため実行できません。分かる方お願いします。

みんなの回答

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.4

>のどれかのコードを書くということでしょうか? @ITのその連載の例題を第1回から一つずつ順番にこなしていけば、そういう疑問は出ないはずです。

solution64
質問者

お礼

/package jp.co.atmarkit.java; public class HTMLDocument { public String source; public void setSource( String html ) { if ( html.indexOf("<html>") == 0 ) source = html; } public String getSource() { return source; } public void showPlainText() { boolean processingTag = false; int pos; int start = 0; for ( pos = 0; pos < source.length(); pos++ ) { // タグ if (processingTag) { if ( source.charAt(pos) != '>' ) { for ( pos++; pos < source.length(); pos++ ) { if ( source.charAt(pos) == '>' ) { break; } } } start = pos + 1; } // テキスト else { if ( source.charAt(pos) != '<' ) { for ( pos++; pos < source.length(); pos++ ) { if ( source.charAt(pos) == '<' ) { System.out.println(source.substring( start, pos )); break; } } } } processingTag = !processingTag; } } } class ExtractPlainTextWithClass { public static void main( String args[] ) { HTMLDocument doc = new HTMLDocument(); doc.source = "<html><head><title>タイトル</title></head><body><p>段落</p></body></html>"; doc.showPlainText(); } } と修正したところ解決できました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.3

そのリンク先のページにちゃんと「HTMLDocumentを利用するプログラム」と題してPackageTestクラスが載っていて、メインメソッドもありますよ。

solution64
質問者

補足

import jp.co.atmarkit.java.HTMLDocument; public class PackageTest { public static void main( String args[] ) { HTMLDocument doc = new HTMLDocument(); doc.setSource("<html>TEXT</html>"); } } のどれかのコードを書くということでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

質問者さん(あるいは出題者)がどういう動作を求めているのかが分からないので、誰にも答えようがありません。

solution64
質問者

補足

http://www.atmarkit.co.jp/fjava/rensai2/javaent10/javaent10.html というサイト(今からはじめるジャバというサイト)に課題が載っています。パッケージ宣言付きのHTMLDocumentというタイトルの下に同じプログラムが書いてあります。これを参考に考えてもらえないでしょうか。 宜しくお願いします!

全文を見る
すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「動くように」するだけなら public static void main(String [] args) { } をいれれば終わり.

solution64
質問者

補足

そのようにやってみましたが、 HTMLDocument.java:11: 式の開始が不正です。 public static void main(String [] args) { } ^ HTMLDocument.java:12: ';' がありません。 } ^ エラー 2 個 となってコンパイルできなくなってしまいました↓

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • java PackageTest

    下のPackageTest.javaを自分のホームディレクトリーに置き、HTMLDocument.javaをしかるべき位置(ディレクトリ)に置く。そして、HTMLDocument.javaをコンパイル し、その後PackageTest.javaをコンパイルする。うまくコンパイルできれば自分のホームディレクトリでjava PackageTestを実行すると TEXT と表示されるはずですなんですがうまくいきません。宜しくお願いします。 ---------------------------------------------------- HTMLDocument.java ---------------------------------------------------- package jp.co.atmarkit.java; public class HTMLDocument { private String source; public void setSource( String html ) { if ( html.indexOf("<html>") == 0 ) source = html; } public String getSource() { return source; } public void showPlainText() { boolean processingTag = false; int pos; int start = 0; for ( pos = 0; pos < source.length(); pos++ ) { // タグ if (processingTag) { if ( source.charAt(pos) != '>' ) { for ( pos++; pos < source.length(); pos++ ) { if ( source.charAt(pos) == '>' ) { break; } } } start = pos + 1; } // テキスト else { if ( source.charAt(pos) != '<' ) { for ( pos++; pos < source.length(); pos++ ) { if ( source.charAt(pos) == '<' ) { System.out.println(source.substring( start, pos )); break; } } } } processingTag = !processingTag; } } } ---------------------------------------------------- PackageTest.java ---------------------------------------------------- import jp.co.atmarkit.java.HTMLDocument; public class PackageTest { public static void main( String args[] ) { HTMLDocument doc = new HTMLDocument(); doc.setSource("<html>TEXT</html>"); doc.showPlainText(); } }

  • Javaのプログラムについて至急教えてください!

    //Sub.java class Super{ public void A(){} } class Sub extends Super{ /* (1) */ } このプログラムの(1)に入るものを下から2つ選んで他のクラスのメインメソッドから呼び出すのですがどうやってもわかりません。わかる方教えてください! public void A(){} public String A(){ return "pool";} public int A(String str){return Integer.parseInt(st);} public int A(){return 3;} public Object A(){return new Object();}

    • ベストアンサー
    • Java
  • java 実行できない

    javaで public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } } のようなプログラムをかいて、コンパイルして、実行しようとすると エラー: メイン・メソッドがクラスStringで見つかりません。次のようにメイン・メソッドを定義してください。 public static void main(String[] args) またはJavaFXアプリケーション・クラスはjavafx.application.Applicationを拡張する必要がありま というエラーがでます。コンパイルはできます。jdkは1.8.0_25を使っています。

  • javaのプログラムで分からない箇所があります

    public class Addkensaku { //読み込むファイルのパス private static final String FILE_PATH = ""; private static enum SearchMode { NAME, AGE, ADDR, REGIST, EXIT } private static final Map<String, SearchMode> modeMap; static { modeMap = new HashMap<String, Addkensaku.SearchMode>(); modeMap.put("1", SearchMode.NAME); modeMap.put("2", SearchMode.AGE); modeMap.put("3", SearchMode.ADDR); modeMap.put("5", SearchMode.REGIST); modeMap.put("9", SearchMode.EXIT); } public static void main(String[] args) throws IOException { BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); String mode = null; System.out.println("何をしますか?\n1.名前(ファーストネーム)で検索\n2.フルネームで検索\n3.年齢で検索\n4.都道府県で検索\n5.追加"); mode = buf.readLine(); if (!checkSearchMode(mode)) { System.out.println("入力値が不正です"); return; } // 読み込み List<Addr> allData = readData(FILE_PATH); SearchMode enmMode = modeMap.get(mode); // 検索 String keyword = null; List<Addr> answer = search(allData, enmMode, keyword); } private static List<Addr> readData(String path) { return null; } //ファイル書きこみ private static void writeData(String path) { } private static List<Addr> search(List<Addr> allData, SearchMode mode, String keyword) { if(SearchMode.NAME == mode){ } if (SearchMode.AGE == mode) { for (Addr record : allData) { record.getName(); } if(SearchMode.ADDR == mode){ } } return null; } private static boolean checkSearchMode(String value) { return modeMap.get(value) != null; } } クラスAddr.java public class Addr { private String name; private String age; private String add; //データ更新用メソッド public void setName(String name) { this.name = name; } public void setAge(String age) { this.age = age; } public void setAdd(String add) { this.add = add; } //参照メソッド public String getName() { return name; } public String getFirstName() { return name.split(" ")[1]; } public String getAge() { return age; } public String getAdd() { return add; } } 二つのクラスを使いテキストファイルの中身を読み込み検索しようとしています ですがパスの指定場所はあっているはずなのですがうまくファイルが読み込めなくここからどのように作っていけばいいかわからず困っています

  • シンボルを解決できません・・・?

    Java初心者です。 public class mondai5 { public static void main(String args[]) { String str = "abc"; if( str != null && str.index0f('a') != -1) { System.out.println("OK"); } else { System.out.println("BAD"); } } } これをコンパイルをしようとすると、このような表示が出ます。 シンボルを解決できません。 シンボル:メソッドindexOf(char) 場所:java.long.Stringのクラス   if( str != null && str.indexof('a') != -1)              ^ なにをしたらいいのかわかりません。 教えてください。

    • ベストアンサー
    • Java
  • Javaについて教えてください!

    OyaクラスのメインメソッドからKoクラス内のメソッドを呼び出して文字列の出力を行いたいのですが、今のままではエラーが出てコンパイル出来ません。どこが間違っているか教えてください!ちなみにエクリプスでの実行には問題はありません。 public class Ko{ public static void ko(){ String str = "KO"; System.out.println(str); }} public class Oya{ public static void main(String[] args){ Ko.ko(); }}

    • ベストアンサー
    • Java
  • javaプログラムについて

    mainメソッド内の指定された部分の処理を、 別のメソッドに分けてください。 mainメソッド内から作成した別メソッドを呼び出して 実行できるようにしてください。 ※分ける前と分けた後で処理結果が変わらないこと (入力された文字が"A"の場合true, それ以外の場合falseを返すように) */ class MethodAdd1{ public static void main(String[] args){ /* // ★ここから if("A".equals(args[0])){ judge = true; }else{ judge = false; } // ★ここまで */ boolean judge; if("A".equals(args[0])){ System.out.println("true"); }else{ System.out.println("false"); } } /* **戻り値:boolean **引数:String */ //ここにメソッドを作成 public static boolean equals(String a){ String str="A"; if("A".equals(str)){ return true; }else{ return false; } } } これで一応trueかfalseと表示されるのですが、合っているのか分かりません。 お時間のある方で、手直しをして頂ける方お願い致します。

  • 戻り値を使う問題について

    <問題> 以下のクラスを作成せよ。 「mainメソッド」 1)Aisatuクラスのオブジェクト作成。 2)Aisatuクラスのohayouメソッドを呼び出し、  戻り値を取得して表示する。 3)Aisatuクラスのkonnitiwaメソッドを呼び出し、  戻り値を取得して表示する。 4)Aisatuクラスのkonbanwaメソッドを呼び出し、  戻り値を取得して表示する。 「Aisatuメソッド」 ohayouメソッド ・「おはようございます」という文字列を戻り値とする。 ・「こんにちは」という文字列を戻り値とする。 ・「こんばんは」という文字列を戻り値とする。 <実行結果> おはようございます こんにちは こんばんは ************************************************************ 上記の質問についてのプログラムなんですが、いまいちクラスとか メソッドとかよく分からなくて、ちゃんと実行できません。 コンパイルは通るのですが、実行しようとすると、 java.lang.NoSuchMethodError のエラーが出てしまいます。 メソッドが見つからないということでしょうか? 間違っているところを教えて下さい。 よろしくお願いします。 class Aisatu { private String oha; private String koni; private String koba; public String aiOhayou(String o) { oha = o; return oha; } public String aiKonnitiwa(String n) { koni = n; return koni; } public String aiKonbanwa(String b) { koba = b; return koba; } } class Greet02 { public static void main(String args[]) { Aisatu as = new Aisatu(); as.aiOhayou("おはようございます"); String ohayou = as.aiOhayou("おはようございます"); System.out.println(ohayou); as.aiKonnitiwa("こんにちは"); String konnitiwa = as.aiKonnitiwa("こんにちは"); System.out.println(konnitiwa); as.aiKonbanwa("こんばんは"); String konbanwa = as.aiKonbanwa("こんばんは"); System.out.println(konbanwa); } }

    • ベストアンサー
    • Java
  • &と|の演算子を使ったif文のプログラムについて

    ↓のプログラムの実行結果について質問します。 public class Test{ public static void main(String args[]){ if(methodA() & methodB() ){ System.out.print(1); }else{ System.out.print(2); } if(methodA() | methodB() ){ System.out.print(3); }else{ System.out.print(4); } } private static boolean methodA(){ System.out.print("A"); return false; } private static boolean methodB(){ System.out.print("B"); return true; } } 上記のプログラムを実行すると AB2AB3 と出力されるのですが、 何故こういう風になるのか教えていただけませんか? また、if文の中をそれぞれ if(methodA() & methodB() ) if(methodA() | methodB() ) と書き換えると A2A3 となるのですが、これについてもイマイチよく分かりません。 メソッドからfalseとtrueを戻り値として受け取り 演算子によって処理を分けているんでしょうけど、 どういう流れで処理が行われているのか 出力結果を見ても読めなくて・・・

    • ベストアンサー
    • Java
  • スーパークラスからサブクラスのメソッドを使おうとする、以下のプログラム

    スーパークラスからサブクラスのメソッドを使おうとする、以下のプログラムでつまずいています。 Aを継承したB、Cクラスのインスタンスを作成し、スーパークラスであるA型の配列asにまとめます。 それからループでas[i]にはいっている各インスタンスのメソッドを使いたいのですが、 スーパークラスAにmethod()がないためコンパイルできません、Aにmethod()を作るとA.method()が実行されます。 BとCを同じ配列に保存し、かつそれぞれのmethod()を実行したい場合どのようにしたら良いのでしょうか。 ご教授ください、どうぞよろしくお願いします。 class Main{ private B b; private C c; private A[] as = new A[2]; void mainMethod(){ as[0] = b = new B(); as[1] = c = new C(); for(int i=0; i<3; i++){ as[i].method(); } } } class A{} class B extends A{ void method(){ System.out.print("It is B"); } } class C extends A{ void method(){ System.out.print("It is C"); } }