Flutter数字验证插件flutter_number_checker的使用

Flutter数字验证插件flutter_number_checker的使用

特性

名称 函数名 描述 示例
素数 isPrimeNumber 大于1且只能被1和它本身整除的自然数 2, 3, 5
偶数 isEvenNumber 能被2整除的数 2, 4, 6
奇数 isOddNumber 不能被2整除的数 1, 3, 5
回文数 isPalindromeNumber 正读反读都一样的数 121, 12321
阿姆斯特朗数 isArmstrongNumber 数字的立方和等于该数 153, 370, 371, 407
完美数 isPerfectNumber 真因数之和等于自身的正整数 6, 28, 496
完全平方数 isPerfectSquare 某个整数的平方
完全立方数 isPerfectCube 某个整数的三次方 8, 27, 64
不快乐数 isSadNumber 不是快乐数 4, 16, 37, 58, 145
快乐数 isHappyNumber 通过不断替换数字为各数位平方和,最终得到1的数 1, 7, 10, 13
平方数 isSquareNumber 某个整数的平方 1, 4, 9, 16, 25
立方数 isCubeNumber 某个整数的三次方 8, 27, 64
三角形数 isTriangularNumber 形如n(n+1)/2的数,其中n是正整数 1, 3, 6, 10, 15, 21, 28
哈沙德数 isHarshadNumber 能被其各位数字之和整除的数 18
史密斯数 isSmithNumber 合数,其各位数字之和等于其质因数的各位数字之和 4, 22, 27
鸭数 isDuckNumber 包含零但不以零开头的数 3210, 7056, 8430709
间谍数 isSpyNumber 数字之和等于数字之积的数 123, 1124, 1313
自动数 isAutomorphicNumber 平方的最后几位与原数相同的数 5, 6, 25, 76, 376, 625
尼恩数 isNeonNumber 数字的平方和等于原数的数 9, 45, 100, 303, 819
旋转对称数 isStrobogrammaticNumber 数字旋转180度后仍然相同的数 0, 1, 8, 11, 69, 88, 96
迪萨里安数 isDisariumNumber 数字的各位数字的幂次和等于原数 135, 518, 598, 1306
卡普雷卡尔数 isKaprekarNumber 平方可以拆分为两部分,这两部分相加等于原数的非负整数 45, 55, 99, 297
克里希纳穆尔蒂数 isKrishnamurthyNumber 数字的各位数字的阶乘和等于原数 145, 40585
逆素数 isEmirpNumber 数字反转后仍然是素数的素数 13, 17, 31, 37
过剩数 isAbundantNumber 真因数之和大于自身的数 12, 18, 20, 24
缺乏数 isDeficientNumber 真因数之和小于自身的数 2, 4, 6, 8
斐波那契数 isFibonacciNumber 斐波那契数列中的数,每个数都是前两个数的和 0, 1, 1, 2, 3, 5
阶乘数 isFactorialNumber 一个整数及其以下所有整数的乘积 1, 2, 6, 24, 120
圆形素数 isCircularPrimeNumber 旋转任意位数后仍然是素数的素数 2, 3, 5, 7

开始使用

添加依赖

请在安装之前检查最新版本。如果新版本有问题,请使用旧版本。

dependencies:
  flutter:
    sdk: flutter
  # 添加 flutter_number_checker
  flutter_number_checker: ^{latest version}

或者运行以下命令:

flutter pub add flutter_number_checker

在Dart代码中添加以下导入:

import 'package:flutter_number_checker/flutter_number_checker.dart';

使用方法

/example文件夹中添加更长的例子。参见示例以获取使用flutter_number_checker的完整示例应用。

int number = 7;
int number2 = 10;

// 普通方式检查是否为素数。
bool isPrime = await FlutterNumberChecker.isPrimeNumber(number);
print(isPrime); // true

// 使用扩展方法检查是否为素数。
bool isPrime2 = number2.isPrimeNumber();
print(isPrime2); // false

在Flutter项目中检查示例

导入包

你需要在使用此包时导入以下行:

import 'package:flutter_number_checker/flutter_number_checker.dart';

创建项目并声明HomeScreen为StatefulWidget

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Number Checker',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const HomeScreen(title: 'Flutter Number Checker'),
    );
  }
}

创建变量来存储要检查的数字

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

class HomeScreen extends StatefulWidget {
  const HomeScreen({super.key, required this.title});
  final String title;

  @override
  State<HomeScreen> createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  num number = 7;
  num number2 = 10;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
        centerTitle: true,
      ),
      body: Column(
        crossAxisAlignment: CrossAxisAlignment.center,
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: [
          /// 扩展方法检查
          const Text(
            '扩展方法检查',
            style: TextStyle(
              fontSize: 20,
              fontWeight: FontWeight.bold,
            ),
          ),

          /// 检查是否为素数
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                '$number 是否为素数:',
              ),
              Text(
                number.isPrimeNumber.toString(),
              ),
            ],
          ),

          /// 检查是否为斐波那契数
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                '$number 是否为斐波那契数:',
              ),
              Text(
                number.isFibonacciNumber.toString(),
              ),
            ],
          ),

          /// 检查是否为回文数
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                '$number 是否为回文数:',
              ),
              Text(
                number.isPalindromeNumber.toString(),
              ),
            ],
          ),

          /// 检查是否为阿姆斯特朗数
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                '$number 是否为阿姆斯特朗数:',
              ),
              Text(
                number.isArmstrongNumber.toString(),
              ),
            ],
          ),

          /// 检查是否为快乐数
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                '$number 是否为快乐数:',
              ),
              Text(
                number.isHappyNumber.toString(),
              ),
            ],
          ),

          /// 分割线
          const Divider(),

          /// 普通方法检查
          const Text(
            '普通方法检查',
            style: TextStyle(
              fontSize: 20,
              fontWeight: FontWeight.bold,
            ),
          ),

          /// 检查是否为素数
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                '$number2 是否为素数:',
              ),
              Text(
                FlutterNumberChecker.isPrimeNumber(number2).toString(),
              ),
            ],
          ),

          /// 检查是否为斐波那契数
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                '$number2 是否为斐波那契数:',
              ),
              Text(
                FlutterNumberChecker.isFibonacciNumber(number2).toString(),
              ),
            ],
          ),

          /// 检查是否为回文数
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                '$number2 是否为回文数:',
              ),
              Text(
                FlutterNumberChecker.isPalindromeNumber(number2).toString(),
              ),
            ],
          ),

          /// 检查是否为阿姆斯特朗数
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                '$number2 是否为阿姆斯特朗数:',
              ),
              Text(
                FlutterNumberChecker.isArmstrongNumber(number2).toString(),
              ),
            ],
          ),

          /// 检查是否为快乐数
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                '$number2 是否为快乐数:',
              ),
              Text(
                FlutterNumberChecker.isHappyNumber(number2).toString(),
              ),
            ],
          ),
        ],
      ),
    );
  }
}

运行项目查看结果

额外信息

贡献

这是一个开源项目,欢迎任何人贡献。前往Github - Flutter Number Checker并fork该项目。然后克隆项目并进行修改。之后创建一个pull请求。我会审查这些更改,并在合适的情况下合并它们。

项目维护者 ❤️

Md. Al-Amin
Md. Al-Amin

有价值的贡献者 ✨

编程愉快 👨‍💻

许可证

Copyright (c) 2022 Md. Al-Amin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

更多关于Flutter数字验证插件flutter_number_checker的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter数字验证插件flutter_number_checker的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何使用 flutter_number_checker 插件的示例代码。flutter_number_checker 是一个用于验证数字的 Flutter 插件,可以用于检查数字的有效性,比如是否为有效的电话号码、信用卡号码等。不过,请注意,具体的验证逻辑和功能可能会根据插件版本的不同而有所变化。

首先,确保你已经在 pubspec.yaml 文件中添加了 flutter_number_checker 依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_number_checker: ^最新版本号  # 替换为实际最新版本号

然后,运行 flutter pub get 来获取依赖。

接下来,你可以在你的 Dart 文件中使用 flutter_number_checker。以下是一个简单的示例,展示了如何验证一个电话号码和信用卡号码:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Number Checker Example'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              TextField(
                decoration: InputDecoration(labelText: 'Enter Phone Number'),
                keyboardType: TextInputType.phone,
                onChanged: (value) {
                  _checkPhoneNumber(value);
                },
              ),
              SizedBox(height: 20),
              TextField(
                decoration: InputDecoration(labelText: 'Enter Credit Card Number'),
                keyboardType: TextInputType.number,
                onChanged: (value) {
                  _checkCreditCardNumber(value);
                },
              ),
              SizedBox(height: 20),
              Text(
                _resultMessage,
                style: TextStyle(fontSize: 18),
              ),
            ],
          ),
        ),
      ),
    );
  }

  String _resultMessage = '';

  void _checkPhoneNumber(String phoneNumber) async {
    bool isValid = await FlutterNumberChecker().isValidPhoneNumber(phoneNumber);
    setState(() {
      _resultMessage = isValid ? 'Valid Phone Number' : 'Invalid Phone Number';
    });
  }

  void _checkCreditCardNumber(String creditCardNumber) async {
    bool isValid = await FlutterNumberChecker().isValidCreditCardNumber(creditCardNumber);
    setState(() {
      _resultMessage = isValid ? 'Valid Credit Card Number' : 'Invalid Credit Card Number';
    });
  }
}

在这个示例中,我们创建了一个简单的 Flutter 应用,其中包含两个文本字段,一个用于输入电话号码,另一个用于输入信用卡号码。当用户输入内容时,会触发相应的验证函数 _checkPhoneNumber_checkCreditCardNumber。这些函数使用 FlutterNumberChecker 提供的 isValidPhoneNumberisValidCreditCardNumber 方法来验证输入的数字,并更新 _resultMessage 以显示验证结果。

请注意,flutter_number_checker 插件的具体 API 和功能可能会随着版本的更新而变化,因此建议查阅最新的官方文档以获取最准确的信息。

回到顶部