我怎样才能把一根绳子分成不同的部分,然后把每一块分成一层?

Posted

技术标签:

【中文标题】我怎样才能把一根绳子分成不同的部分,然后把每一块分成一层?【英文标题】:How can I break an string in different pieces, and shift each piece split one level down? 【发布时间】:2019-10-31 01:22:05 【问题描述】:

使用 SQL ORACLE:

我需要将一系列字符串分成单独的部分,并且每个后续部分都需要低于它之前的部分,即垂直列出,每行一个。我想在 '^' 符号处分隔字符串。

例如,字符串是'RT12^RT45^LT44^TR55'

结果需要是:

RT12
RT45
LT44
TR55

【问题讨论】:

如果您希望结果只有一行,我不确定“下移一级”是什么意思。您是否只想将克拉字符 ^ 替换为回车 (CR) 或回车换行 (CR LF)(Windows 和 Unix 具有不同的行终止符)? 另外,为什么最后一行是TR^55?你为什么不在插入符号上拆分它? 使用replace或translate函数将^替换为cr lf字符,或者用java代码做,更灵活 查看post 【参考方案1】:
 SELECT
       REGEXP_SUBSTR(TRIM('^' FROM 'RT12^RT45^LT44^TR55'), '[^\^]+', 1, LEVEL) AS res
   FROM
      DUAL
  CONNECT BY
     LEVEL <= REGEXP_COUNT(TRIM('^' FROM 'RT12^RT45^LT44^TR55'), '\^')+1

【讨论】:

把你的答案合二为一(或者最好删除另一个,这已经很不错了)

以上是关于我怎样才能把一根绳子分成不同的部分,然后把每一块分成一层?的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer——15剪绳子

剪绳子问题(动态规划,贪婪,递归)

abaqus里怎么把一个整体分成我想要的两个部分,然后两个部分用不同的分格方式

动态规划 剪绳子

剪绳子 --剑指offer

剪绳子