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

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

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

ScalaはJava仮想マシンで動作を行うオブジェクト指向型プログラミング言語の1つです。静的型付けの関数型言語で、コンパイルエラーの検出に強みがあります。

Java

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

Play Framework 2

Play Framework 2はPlayのメジャーバージョンです。現代の web アプリケーション開発に必要なコンポーネント及び API を統合した生産性の高い Java と Scala の web アプリケーションフレームワークです。

Q&A

解決済

1回答

2459閲覧

ScalaでJsoupをつかって値を取得したい。(for文がうまくいかない:型推論?)

karyu0001

総合スコア13

Scala

ScalaはJava仮想マシンで動作を行うオブジェクト指向型プログラミング言語の1つです。静的型付けの関数型言語で、コンパイルエラーの検出に強みがあります。

Java

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

Play Framework 2

Play Framework 2はPlayのメジャーバージョンです。現代の web アプリケーション開発に必要なコンポーネント及び API を統合した生産性の高い Java と Scala の web アプリケーションフレームワークです。

1グッド

1クリップ

投稿2016/11/17 12:59

編集2016/11/17 22:31

質問に失礼があったらすみません。
数時間調べても似たエラーのループで解決しなかったので質問致しました。Scalaは勉強中です。よろしくお願いします。

ScalaでJsoupを使ってJリーグのサイトのHTMLを解析したいのですが、ためしに適当にIdを指定してFor文で回そうと思ったのですが、うまくいかないため質問いたしました。

なんとか回避しようと以下のサイトを参考にしました
https://jsoup.org/apidocs/org/jsoup/select/Elements.html#forms--
http://www.mwsoft.jp/programming/scala/foreach.html
http://www.ne.jp/asahi/hishidama/home/tech/scala/array.html

以下のコードを実行すると下記のようなエラーが発生します。
type mismatch; found : Unit required: String
イメージ説明

イメージ説明

イメージ説明

Scala

1package controllers 2 3import play.api._ 4import play.api.mvc._ 5 6import org.jsoup._ 7import collection.JavaConverters._ 8 9object Application extends Controller { 10 11 def index = Action { 12 testget() 13 Ok(views.html.index("Your new application is ready.")) 14 } 15 16 def getTest(urlstr: String):String = { 17 18 // URLからHTML取得 19 val doc = Jsoup.connect(urlstr).get 20 val stoksPrices = doc.select("td[class=nowrap]"); 21 //val stoksPrice = stoksPrices.get(0) 22 //return stoksPrice.text 23 for(i:(Int) <- 0 to (stoksPrices.forms().size:(Int)))( 24 stoksPrices.get(i).text 25 ) 26 //(0 to stoksPrices.size).foreach(stoksPrices.get(_:Int).text) 27 28 } 29 30 def testget() { 31 val stoksPrice = getTest("https://data.j-league.or.jp/SFMS01/search?competition_years=2016") 32 println(stoksPrice) 33 } 34
A-pZ👍を押しています

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

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

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

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

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

MasahikoHirata

2016/11/17 14:24

多くのScalaの例文と比較してみて、”まさかねぇ”とは思うのですが(Int)の所の'('と')'を外してIntだけ書いてみるとどうなりますか?
KSwordOfHaste

2016/11/17 16:25

Jsoupは入れてないのですが、stoksPrices.forms().sizeの結果がIntでありさえすれば上のfor文はコンパイルエラーになりませんでした。for (i <- ...)でも for (i:Int <- ...)でもfor (i:(Int) <- ...) でもいずれもOKです(scala 2.11.6)
karyu0001

2016/11/17 22:32

すみません、画像追加しました、短文失礼します。コメント有難うございます
karyu001

2016/11/17 23:04

質問したものです。コンソールが文字化けしないようにPlayバッチでSJIS指定してた記憶もあるので帰ったら戻してみます
KSwordOfHaste

2016/11/18 02:05

「0 to 10:Int」はNGです。(0 to 10):Int と解釈されるので。
karyu001

2016/11/18 09:17

ご助言ありがとうございます"1 to (10:Int) "で試してみます
karyu0001

2016/11/18 11:29

みなさん、コメント・ご助言ありがとうございました。解決致しました。原因はメソッドの引数の型を誤って指定していたことでした。ありがとうございました
guest

回答1

0

自己解決

メソッドの返り値を”Unit"にすることで解決致しました。

コメントくださった方々、ありがとうございました。
某サイトのScala基礎講習をじっくり読み直して気づきました。

解決

投稿2016/11/18 11:27

karyu0001

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問