首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Scala表达式替换字符串中的文件扩展名

Scala表达式替换字符串中的文件扩展名
EN

Stack Overflow用户
提问于 2011-01-19 01:23:49
回答 7查看 10.7K关注 0票数 11

下面是我用split编写的一个版本:

代码语言:javascript
运行
复制
fileName.split('.').init ++ Seq("js") mkString "."

这可以将例如foo.bar.coffee转换为foo.bar.js

我喜欢的是:

indexOf()

  • it

  • it works

  • 它不依赖于像

这样的东西

我不喜欢的是:

  • ,它不像我希望的
  • 那么短,它可能会混淆一些读者--

我怎样才能写一个更简单的版本呢?

更新:下面是很好的答案!简而言之:

上面我的最初方法似乎还不错,尽管它没有涵盖一些角落的情况,但是如果您需要使用those

  • another,稍微短一些的方法使用regexp,那么这个方法是可以用更长的表达式解决的,根据您的regexp背景
  • ,它或多或少是可读性的--原始方法的语法稍微短一些(没有涵盖角的情况):

fileName.split('.').init :+ "js" mkString "."

EN

Stack Overflow用户

发布于 2020-04-13 18:39:55

如果您知道当前的扩展是什么,那么您可以这样做:

代码语言:javascript
运行
复制
def replaceExtension(fileName: String, oldExt: String, newExt: String): String =
  fileName.stripSuffix(oldExt) + newExt

// Be sure to use `.` when calling:
replaceExtension(fileName, ".javascript", ".js")
票数 1
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4730866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档