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

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

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

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Q&A

解決済

1回答

1803閲覧

dart 文字列から数字に変換 Math.parseInt() でエラーはなぜか他

vortAmas87

総合スコア7

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

0グッド

0クリップ

投稿2020/02/13 05:26

全くの初心者で大変基本的な質問で申し訳ないのですが、AndroidStudio環境
flutter dart で入力した数字の文字列を数字に変換するので、エラーが出ます。解決するにはimport文以外に何か処理が必要ですか?また、入力した文字列を_kekka で表示するのにエラーが出ますがなぜでしょうか

main.dart 文

import 'package:flutter/material.dart';
import 'dart:math';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'test',
home: MyCustomForm(),
);
}
}

class MyCustomForm extends StatefulWidget {
@override
_MyCustomFormState createState() => _MyCustomFormState();
}

class _MyCustomFormState extends State<MyCustomForm> {

@override
Widget build(BuildContext context) {

final searchHint = Text("キーワード: "); final searchText = new Flexible( child: TextField( controller: myController, onSubmitted: (String txt) { setState(() { txt = "0-50";//入力値の例 List st_en = [0, 50]; st_en = txt.split("-"); var start = Math.parseInt(st_en[0]);//●● var end = Math.parseInt(st_en[1]); _kekka = txt;//●● }); }, ), ); return Scaffold( appBar: AppBar( title: Row(mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Text("テスト"), //searchHint, SizedBox(width: 5), searchText, ]), ), body: Text(_kekka), );

}

final myController = TextEditingController();
final _kekka = "123";
}

処理結果のエラー文

Launching lib\main.dart on FIG LA1 in debug mode...
Running Gradle task 'assembleDebug'...

Compiler message:
lib/main.dart:35:25: Error: The getter 'Math' isn't defined for the class '_MyCustomFormState'.

  • '_MyCustomFormState' is from 'package:flutter_app_int/main.dart' ('lib/main.dart').

Try correcting the name to the name of an existing getter, or defining a getter or field named 'Math'.
var start = Math.parseInt(st_en[0]);
^^^^
lib/main.dart:36:23: Error: The getter 'Math' isn't defined for the class '_MyCustomFormState'.

  • '_MyCustomFormState' is from 'package:flutter_app_int/main.dart' ('lib/main.dart').

Try correcting the name to the name of an existing getter, or defining a getter or field named 'Math'.
var end = Math.parseInt(st_en[1]);
^^^^
lib/main.dart:37:13: Error:** The setter '_kekka' isn't defined for the class '_MyCustomFormState'.**

  • '_MyCustomFormState' is from 'package:flutter_app_int/main.dart' ('lib/main.dart').

Try correcting the name to the name of an existing setter, or defining a setter or field named '_kekka'.
_kekka = txt;
^^^^^^
Target kernel_snapshot failed: Exception: Errors during snapshot creation: null
build failed.

FAILURE: Build failed with an exception.

  • Where:

Script 'C:\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 780

  • What went wrong:

Execution failed for task ':app:compileFlutterBuildDebug'.

Process 'command 'C:\flutter\bin\flutter.bat'' finished with non-zero exit value 1

  • Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

BUILD FAILED in 14s
Finished with error: Gradle task assembleDebug failed with exit code 1

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

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

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

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

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

popobot

2020/02/13 09:00

ソースコードやエラーメッセージは ``` で囲って読みやすくしてください
vortAmas87

2020/02/14 01:04

始めて使ったので、書き方が良くなくてすみませんでした。質問の書き方をもう少し調べて見ます
popobot

2020/02/14 01:42

そうなんですね、Markdown方式はteratailに限らず、よく利用されているので、覚えるといいと思います。 今からでもいいので、この質問の内容も更新しましょう。 後からこの質問を見た人がわかりやすいですし、練習にもなると思います。
guest

回答1

0

ベストアンサー

文字列から数字に変換処理は、 int.parse() です。

import 'dart:math';も必要ありません。

参考:公式APIドキュメント

投稿2020/02/13 09:05

編集2020/02/13 09:07
popobot

総合スコア6586

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

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

vortAmas87

2020/02/14 01:09

ありがとうございました。入門書やネットでの例で書いたのですが、すでに仕様が変更されていたのですね。それから、_kekka のエラーの件ですが、final から var _kekka に修正したら良くなりました。
popobot

2020/02/14 01:39

_kekkaの内容見逃してました...すみません。 finalだと値を上書きできないのでvarに変更する対応で正しいと思います。
vortAmas87

2020/02/15 01:55

他のプログラムで final に代入していたので、final で上書きできないと思っていなかったのです。しかし次のように const と違って、リスト(配列)では値の変更が可能のようです。final _test = []; で _test.add('abc'); が実行できました。 なお、どうしたら質問を更新することができますか?
popobot

2020/02/15 03:42

> なお、どうしたら質問を更新することができますか? 自分は質問したことがないのでよく知らないのですが、以下が参考になるかもです。 https://teratail.com/questions/44783
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問