从字符串中删除最后 n 个字符

Cut last n characters off of a String

这里是 Pharo 初学者 - 我有一些(丑陋的?)适用于特定情况的代码,但想知道是否有更好(更具可读性)的方法。我想获得没有 .git 结尾的回购名称(如果它存在)。

剪掉 n 个字符会很棒。我正在寻找通用解决方案。

我找到了 trimRight: 但它不是字符数;它是白色 space 或特定字符。

(projectName endsWith: '.git')
        ifTrue: [ projectName := projectName 
            copyFrom: 1 to: projectName size - '.git' size - 1 ]

’Hello World’ allButLast: 2 => ‘Hello Wor’

对于这些您想要删除特定后缀(如果存在)的情况,您完全可以使用#withoutSuffix:。

你的情况应该是

projectName withoutSuffix: '.git'