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 |
有价值的贡献者 ✨
编程愉快 👨💻
许可证
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
更多关于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
提供的 isValidPhoneNumber
和 isValidCreditCardNumber
方法来验证输入的数字,并更新 _resultMessage
以显示验证结果。
请注意,flutter_number_checker
插件的具体 API 和功能可能会随着版本的更新而变化,因此建议查阅最新的官方文档以获取最准确的信息。