SAP ABAP 判断字符串是否能转成整数、小数、其他字符串

abap判断是否为整数 简单检查→IS NUMERIC(可能误判12.3最安全方式→转换为I严格匹配→ 使用正则表达式根据具体需求选择合适的方法!🚀。 阅读详情

FUNCTION zhy_fm_check_dic.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(INPUT) TYPE  STRING
*"  EXPORTING
*"     VALUE(E_TYPE) TYPE  ZSTR_TYPE
*"  EXCEPTIONS
*"      NO_INPUT
*"----------------------------------------------------------------------

  DATA lv_str TYPE string.

  lv_str = input.

  IF lv_str IS INITIAL .
    RAISE no_input.
  ENDIF.

  CHECK NOT lv_str IS INITIAL .

  IF lv_str CA ' '.
    e_type = 'O'.
  ENDIF.

  CHECK NOT lv_str CA ' '.

  IF lv_str = '0'.
    e_type = 'I'.
  ENDIF.

  CHECK NOT lv_str = '0'.

  IF lv_str CO '0123456789'.
    "纯数字
    IF lv_str+0(1) = '0'.
      "零开头的纯数字
      e_type = 'O'.
    ELSE.
      "非0开头的纯数字字符串 = 整数
      e_type = 'I'.
    ENDIF.

  ELSE.

    IF lv_str CO '0123456789.'.

      IF lv_str+0(1) = '.'.
        ".开头的纯数字
        e_type = 'O'.
      ELSE.
        "小数
        e_type = 'D'.
      ENDIF.

    ELSE.
      e_type = 'O'.
    ENDIF.

  ENDIF.
ENDFUNCTION.

ABAP中高效判断整数的3种实用方法 本文详细解析了在ABAP开发中判断字符串是否为整数的三种核心方法:使用IS NUMERIC进行快速初筛、利用TRY...CATCH进行安全转换以及通过正则表达式实现精确匹配。文章对比了各方法的性能、准确性及适用场景,帮助开发者根据实际需求选择最高效、最稳健的整数验证方案,从而提升代码的健壮性和执行效率。 阅读详情

相关推荐

SAP ABAP——数据类型(六)【预定义基本数据类型详解(1)

数据类型默认长度有效长度默认值解释说明I440整型F880浮点型P81~160压缩数类型(将两个十进制数字压缩到一个字节)C11~65535‘…’文本型D88‘00000000’日期型(YYYYMMDD)N11~65535‘0…0’数字字符串类型(0~9之间的字符组成的数字字符串)T66‘000000’时间类型(格式:HHMMSS)x11~65535X’0…0’十六进制字段STRING0ANYSPACE。

2401_84185106的博客 1024

ABAP 字符类型转化为数字类型

ABAP使用函数CSAP_MAT_BOM_READ读取BOM时,数量格式转化

weixin_41886784的博客 5496

SAP-ABAP:字符与数值类型转换详细指南

SAP-ABAP:字符与数值类型转换详细指南

baidu_35680696的博客 1474

ABAP 判断字符串中是否全部为数字的方法

判断字符串的数据类型,可以使用函数NUMERIC_CHECK, 使用方法也很简单 如果是纯数字 没有小数点,这么判断是可以的(注意NUMC是会自动补0的,仅用于判断类型没问题),但是如果有小数就会变成CHAR 还有另一种方法 IFcl_abap_matcher=>matches( pattern='^(-?[1-9]\d*(\.\d*[1-9])?)|(-?0\.\...

yiyuzz的博客 1万+

【ABAP】数据类型(二)「预定义数据类型」

本文主要对SAP ABAP中预定义数据类型进行一个详细地介绍,在此前文章中我们已经对预定义数据类型有了一个最基本的了解,本文在此基础上会进行更加详细深入细致地讲解,主要包括预定义数据类型的分类

Thunder Wang的博客 5641

SAP ABAP编程完整命令指南

ABAP(Advanced Business Application Programming)是由SAP公司开发的一种高级企业应用编程语言。它专为SAP的应用程序和开发工作而设计,是SAP系统中编写报告、创建用户界面、处理数据以及与SAP数据库交互的主要语言。创建自定义数据类型在ABAP中是一个常用且有效的方法,以简化程序设计和提升代码可读性。定义自定义数据类型通常涉及到结构体(structures)的创建。结构体可以包含一个或多个数据元素,这些数据元素可以是基本数据类型,也可以是其他结构体。

weixin_35797963的博客 1392

SAP ABAP 基础知识

ABAP 基础知识 小白笔记 持续更新~

qq_43949479的博客 8643

判断一个字符串或字符串中的一个字符是否为数字类型

有安全性、快捷、方便等不同的方式来判断一个字符或者一个字符串是否为整数类型。

判断是否是整数,小数或实数

经常会遇到这样的情况,需要判断一个字符串是否是一个合法的数,包括整数,小数或者实数。     网上查到很多文章大多是判断这个字符串是否全为数字,比如下面这段来自StringUtils的代码,可以看到,13.2这样的数字实际上会返回false,可是,他的确是一个数字。 public static boolean isNumeric(String str) { if (str

笨狐狸 1万+

ABAP-数据类型学习笔记

ABAP-数据类型学习笔记

智能体在车联网中的应用:第19天 智能体理论与初步实践 D30:阶段小结——在SUMO中使用TraCI控制预编程智能体

本文介绍了如何将强化学习从算法仿真迁移到交通系统实践,重点讲解了SUMO微观交通仿真平台与TraCI实时控制接口的架构。通过构建一个预编程驾驶智能体,演示了车辆从起点到目标点的导航控制。文章详细解析了TraCI的双向通信机制和事件驱动模型,对比了其与传统RL环境的差异,并提供了完整的Python实现框架,包括路网配置、车辆控制和基于向量场的导航逻辑。该实践为后续开发高级学习型交通智能体奠定了基础。

IT深耕十余载,大道之简 1478

ABAP中判断整数的3种方法:从基础到高级的完整指南

本文详细介绍了ABAP中判断整数的3种方法,包括基础验证IS NUMERIC、类型转换法和正则表达式。通过对比分析它们的适用场景和性能表现,帮助开发者选择最适合业务需求的整数验证方案,提升SAP系统开发效率。

9o8p7i6u5y的博客 514

详细解读文字识别工具———Tesseract-OCR

   在尝试破解12306验证码的时候,提前了解了一下应对各种验证码的解决方案,这里主要是学习到了面对文字图片验证码,例如亚马逊、豆瓣等平台的登录时会遇到的情况,效果还不错。 一、工具介绍 ​    Tesseract-OCR 是一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition...

别看我只是一只羊 2万+

ABAP SAP初识数据类型

ABAP SAP 数据类型

m0_64616548的博客 2053

【TCAX相关】Python 官方手册下载页面(中文+英文)

Python 官方手册下载页面(中文+英文) 中文: https://docs.python.org/zh-cn/3.8/archives/ https://docs.python.org/zh-cn/3.6/archives/ 英文: https://www.python.org/doc/versions/ https://docs.python.org/3/archives/ https://www.python.org/ftp/python/doc/ ...

Seekladoom的博客 1011

Briefings in Bioinformatics投稿经验分享

Briefings in Bioinformatics投稿经验分享

LiRongLu_的博客 3337

SAP ABAP 常用语法 关键字详解 (超级全面)

SAPABAP常用语法关键字详解(超级全面)

Li958172829的博客 9207

Xiaojie雷达之路---手把手教你从串口获取雷达原始数据(一)---新建工程(开始)

Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,Xiaojie准备连载一个系列的文章---利用串口获取毫米波雷达中的原始数据,本系列文章将从新建工程到最后原始数据显示到PC上进行逐步介绍,这个系列的文章大约是一个4-5篇左右。本篇文章呢,主要讲的是如何新建一个毫米波雷达的工程。

XiaoJie的博客 5810

SAP ABAP 数字类型精讲

ABAP/4有3种数字类型(数字型)。 (1)整数型 I ·值范围为-231-2147483648)~231-1(2147483647)。 ·只支持整数类型。 ·非整数型数据会进行四舍五入(Round)。 ·用于计算行数、条目数、索引值等。 (2)小数型Packed numbers of Type P ·允许有小数位。 ·可用长度为1~16,小数位最大长度为14位。 ·程序属性设置如[图2-9]所示,应选择Fixed point arithmetic。若不选择,类型P就没有意义,与整数类型相同。 ·常使用于

李威威wiwi的博客 8282

YOLO11改进-注意力-引入自调制特征聚合模块SMFA

SMFA(自调制特征聚合模块): SMFA模块用于协同建模局部和非局部信息,它分为两个分支:一个是EASA(Efficient Approximation of Self-Attention,简化的自注意力分支),用于捕获非局部信息;另一个是LDE(Local Detail Estimation,局部细节估计分支),用于捕获局部细节。EASA通过对输入特征进行下采样,然后利用全局特征的方差进行调制,再与原始特征进行聚合,提取非局部结构信息。LDE分支则通过卷积操作提取输入特征中的高频局部信息。

qq_64693987的博客 2208

Coze智能体开发:如何搭建一个生成长文本的工作流

扣子工作流提供了流程定制化的能力,我们可以把长文生成的流程拆分为多个步骤,例如先通过大模型节点生成大纲、再使用循环节点依次扩写各个段落,最后将各个段落组合起来,从而实现长文生成流程。此工作流可适用于学术写作、商业报告、小说创作等多种场景。

王国平的博客 1789

ABAP 判断数字大杂烩

经常会在开发中判断输入的字串是否为数字的情况,比如上载文件中如果有金额、数量的时候,如果不做判断就直接将非数字的字串赋值给quan类型的变量会导致dump。下面将数字的判断方式做一下汇总: 1. 先来个最简单的 使用SPLIT通过‘.’分割,然后判断后面的部分是否大于0 DATA LV_ISINTEGER TYPE CHAR20. DATA INTEGER TYPE CHAR20. DATA DECIMAL TYPE CHAR20. "判断数量是否是小数 LV_ISINTEGER = GS_DATA-ME

'尤其是十月的风'的博客 5671

ZYNQ通过AXI DMA实现PL发送连续大量数据到PS DDR

方案二是在PS端的MPU配置中,将DMA缓冲区所在的内存区域标记为“不缓存”(Device或Strongly Ordered类型),但这样CPU访问这些内存区的速度会大幅降低,需要根据实时性和数据正确性的需求做权衡。更妙的是,描述符链表可以做成一个环状队列,放在DDR里让DMA循环取走,从而实现持续不断的“流式”传输。用FPGA实现FFT硬件加速的系统中也是如此:PS向PL提交待处理的FFT数据,PL硬件加速计算后,DMA把结果写回DDR,全程CPU几乎只做配置调度,大量数据吞吐留给了硬件通道。

QQ_778132974的博客 173

[SAP ABAP开发技术总结]初始值、空、NULL、INITIAL

20.17.表字段初始值、NULL等问题 20.17.1.SE11表设置中的Initial Values 20.17.2.底层数据库表字段默认值 20.17.3.ABAP初始值、底层数据库表默认值相互转换 20.17.3.1.向表中插入初始值 20.17.3.2.读取数据 20.17.4.SAP系统中的表字段不允许为NULL的原因 20.1...

YAYA的SAP之路 9034

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

SAP:ABAP基础篇--字符串截取

Zhuan 的哦! 1. 数字类型(numeric types) (1).类型 Abap支持三种数字类型: I:整型 范围:-2147483648 to 2147483647 P:16位 范围:取决于小数位的长度 注意事项:为了确保计算正确,必须在程序属性中把fixed point arithmetic选中,参考图...

ielxzhang的专栏 6919

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SAP ABAP——数据类型(六)【预定义基本数据类型详解】

本文主要对SAP ABAP中预定义数据类型进行一个详细地介绍,在此前文章中我们已经对预定义数据类型有了一个最基本的了解,本文在此基础上会进行更加详细深入细致地讲解,主要包括预定义数据类型的分类

Thunder Wang的博客 4339

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: SAP 定义类型的时候INCLUDE数据字典里的结构 易错点
下一篇: SAP ABAP OLE和DOI
csucoder_zone
博客等级 码龄10年 39粉丝 60原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值