我目前正在使用UPS API来验证地址,在我们的系统中,地址行1的最大长度是35个字符,当超过35个字符时,由于长度问题,它不会更新我们的数据库。
所以我想做的是如果地址的长度大于35,那么子串只有35个字符,但不中断地址流,例如,如果地址是
10620 SOUTHERN HIGHLANDS PKWY # 110-811
正如您在本例中看到的,“10620 SOUTHERN HIGHLANDS PKWY # 110”正好是35个字符,但我不想打断“110-811”部分,所以我想返回到最后一个空格,然后将地址的其余部分放在地址行2上
我想把它还回去
address 1: 10620 SOUTHERN HIGHLANDS PKWY #
address 2: 110-811
3条答案
按热度按时间62lalag41#
这里有一个选择读取代码中的注解。正如您所说,地址最多可以有2个部分(长度为35个字符),函数接受整个地址作为第一个参数,地址部分(1或2)作为第二个参数。
测试:
nzrxty8p2#
像这样的事情可能会起作用:
ie3xauqp3#
对于复杂的字符串操作,我会建议制作pl/sql函数,这样您就可以应用过程化编程。
通常,您不能依赖最后一个空格作为换行符,因为第二行也可能有许多空格。
你需要将字符串拆分成单词,并收集第一行的单词,不超过35个字符。剩下的单词用于第二行。你需要一个数组,一个for循环,和一些if。我们切换到PostgreSQL,在那里你可以用多种语言编写函数,也可以用python,但在Oracle中,普通的pl/sql也可以工作。