ibm-doors - 如何在 for 循环中对整个循环无效的字符串数组元素进行这样的修改?
问题描述
我的问题与格式化字符串数组的元素有关。我想在 foo 循环中对字符串数组中的所有行应用小写字母。
但是,在同一个 for 循环中,但后来我需要以原始形式再次使用这些字符串。不幸的是,我找不到任何解决方案将字母重新排序为原始变体。我必须严格使用 DOORS 正式模块的早期部分小写字母的变体。
我怎样才能在 DXL 中获得这个结果?
例子:
我有一个字符串数组,其中包含以下术语:
AbCDefg
aBcdEFG
等等
最后我想看看 for 循环中第一次使用的结果:
abcdefg
abcdefg
ETC
而第二种用法我想看看字符串数组的原始元素:
AbCDefg
aBcdEFG
等等
解决方案
您可以通过创建一个函数来实现这一点,该函数将返回一个包含输入的小写值的新数组。这意味着原始值不会改变,您可以再次使用它们。
string originalArray[] = {"This ", "is ", "A ", "TeSt ", "STRING"}
string lowercaseArray[] = null
string arrayToLower(string input[])[] {
int inputSize = sizeof(input)
string result[inputSize]
int i
for (i = 0; i < inputSize; i++) {
result[i] = lower(input[i])
}
return result
}
lowercaseArray= arrayToLower(originalArray)
int count = sizeof(lowercaseArray)
int j
for(j=0;j<count;j++) {
print(lowercaseArray[j] "\n")
}
此代码示例提供了一个函数arrayToLower()
,如果您传入一个字符串数组,它将返回一个新数组,其中包含原始值的小写值。上面的完整示例将显示它使用一些测试数据,您唯一需要的是:
string arrayToLower(string input[])[] {
int inputSize = sizeof(input)
string result[inputSize]
int i
for (i = 0; i < inputSize; i++) {
result[i] = lower(input[i])
}
return result
}
推荐阅读
- ruby - 有没有办法在单个 blcok 中“关闭”共享上下文?
- ios - IOS 13没有使具有级别.statusbar的UIWindow出现在iPhone的状态栏上
- java - 在使用 SimpleThreadScope 的 Spring Boot 中,我在同一个线程中获得了一个对象的两个实例
- spring - 如何使用外部路径作为命令行参数或配置文件夹在 Spring Boot 2.1.7 中读取外部 xml
- javascript - 在单独的文件中重构长函数
- symfony - Symfony4 - 是否有可能从安全注释中调用类方法?
- android - 目的地信息:左侧/右侧颤振地图
- angular - Angular CDK 门户,多个门户到一个 PortalOutlet?
- autocomplete - 选择后重置自动完成输入,然后显示所有选项
- c++ - 将 QString 绘制到 QImage 对象上时出现对齐问题