首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Streambase中将ASCII整数转换为字符串?

如何在Streambase中将ASCII整数转换为字符串?
EN

Stack Overflow用户
提问于 2015-10-05 18:55:41
回答 1查看 119关注 0票数 0

我正在使用streambase,并创建了一个映射将传入的整数(0-255)转换为字符代码。现在,我正在使用手动if/else语句。例如:

代码语言:javascript
复制
    if (message_code == '106') then 
        message_code = 'J'
    else if (message_code == '110') then
         message_code= 'N'

但是,我只想更广泛地使用这个。据我所知,搜索Streambase帮助并没有真正提供任何信息。我知道这可以在Java中完成,但可能需要调用java外部函数。我在这方面不是很能干,所以有点迷路了。

在StreamBase中有更好的方法来做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-06 20:50:05

初步调查证实,StreamBase表达式语言或内置函数没有明显的方法将表示ASCII字符值的into转换为对应于ASCII值的单字符字符串。如果我稍后发现了一些不明显的技巧,我会回来编辑这个答案。

我肯定不会使用255子句如果/然后/else表达式!

我可能会使用Java函数,下面是一个简单测试的示例:

代码语言:javascript
复制
package example;

public class ASCIIIntToString {

    public static String ASCIIToString(Integer a) {
        if (a == null || a < 0 || a > 255) {
            return null;
        } else {
            return Character.toString((char) (int) a);
        }
    }
}

要放到sbd.sbconf中的自定义函数声明如下所示:

代码语言:javascript
复制
<custom-functions>
    <custom-function alias="ASCIIToString"
                     args="auto"
                     class="example.ASCIIIntToString"
                     language="java"
                     name="ASCIIToString"
                     type="simple"/>
</custom-functions>

但是,如果您不想进入Java并停留在EventFlow中,那么就想到了两个方法:

  1. 将包含int ->字符串映射的CSV文件加载到查询表中,并使用Query操作符进行查找,可能会使用“初始内容”选项卡来引用CSV文件,因为ASCII不会很快更改。
  2. 创建一个名为“ASCII”的列表常量,它具有要转换到的所有字符串,并通过int索引列表。例如,在Map操作符中添加c ASCIIi,并添加一些边界检查逻辑(可能在用户函数中)。

披露/免责声明:我是TIBCO软件公司的员工。这里表达的意见是我自己的,而不是TIBCO的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32955832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档