groovy是否有简单的方法来解决这个问题?

mftmpeh8  于 2022-11-01  发布在  其他
关注(0)|答案(2)|浏览(209)

说我有这样的话:

String[] a = myFile.split('/\\\\')

上面的一行有这样的内容:“/使用者/数据/集线器/文件/文件名称.csv”

String b = "${a[0]}/${a[1]}/${a[2]}/${a[3]}"     //users/data/hub/doc

如果我创建了一个新文件夹“CES”,那么在字符串B中它需要被反映(即CES/users/data/hub/doc)。我知道添加额外的“${a[4]}”将解决我的问题,但是我只想知道是否有任何其他方法来解决这个问题,因为每次手动进行更改都将不起作用:(

kh212irz

kh212irz1#

假设有一条路径:

def myFile = '/users/data/hub/doc/filename.csv'

您希望在/(如果是Windows路径,则为\)上拆分它
然后你可以做:

String[] a = myFile.split('[/\\\\]')

然后,要将它们重新连接在一起,只需执行以下操作:

String result = a.dropRight(1).join('/')

这将删除右边的元素(文件名),然后将其他元素连接在一起,以/分隔

d4so4syb

d4so4syb2#

简单的替换也行:

String path = '/users/data/hub/doc/filename.csv'.replaceFirst( /(.+)\/[^\/]+/, '$1' )
assert path == '/users/data/hub/doc'

相关问题