gpt4 book ai didi

string - 截断文本以在 Scala 中获得预览

转载 作者:行者123 更新时间:2023-12-05 00:19:23 32 4
gpt4 key购买 nike

我需要截断文本才能预览。预览是~N的文字前缀字符(但不能更多),并且不应在中间拆分单词。

预览(“aaa”,10)=“aaa”
预览(“a b c”,10)=“a b c”
预览(“aaa bbb”,5)=“aaa”
preview("a b ccc", 3) = "a b"

我编写了一个函数如下:

def preview(s:String, n:Int) =
if (s.length <= n) s else s.take(s.lastIndexOf(' ', n))

你会改变或修复它吗?

现在我正在考虑如何处理文本单词被一个或多个空格分隔(包括 \n\t 等)而不是一个空格的情况。您将如何改进处理这种情况的功能?

最佳答案

以下情况如何:

  def preview(s: String, n: Int) = if (s.length <= n) {
s
} else {
s.take(s.lastIndexWhere(_.isSpaceChar, n + 1)).trim
}

此功能将:
  • 对于较短或相等的字符串 n返回字符串(不需要预览)
  • 否则查找 n + 1 中的最后一个空格字符第一个字符(这将表明最后一个世界是否被拆分,好像它不是 n + 1 将是一个空格字符,否则为非空格字符)并获取一个字符串到这一点

  • 注: isSpaceChar的用法不仅会提供对空格的支持,还会提供新的行或段落,这就是我相信你所追求的(如果你需要更多扩展的单词分隔符,你可以用 isWhitespace 替换它)。

    关于string - 截断文本以在 Scala 中获得预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23357164/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com