假设我们有一个多行字符串,比如
var s:String = "my first line\nmy second line\nmy third line\nand so on!";
Run Code Online (Sandbox Code Playgroud)
在Haxe中获取(仅)此字符串的第一行的最佳方法是什么?我知道我可以这样做:
static function getFirstLine(s:String):String {
var t:String = s.split("\n")[0];
if(t.charAt(t.length - 1) == "\r") {
t = t.substring(0, t.length - 1);
}
return t;
}
Run Code Online (Sandbox Code Playgroud)
但是我想知道是否有更简单的(预定义)方法...
注意@ Gama11的答案效果很好,比这更优雅.
如果你的字符串很长,split将迭代整个事物并分配一个包含字符串中每一行的数组,这两个都是不必要的.另一种选择是indexOf:
static function getFirstLine(s:String):String {
var i = s.indexOf("\n");
if (i == -1) return s;
if (i > 0 && s.charAt(i - 1) == "\r") --i;
return s.substr(0, i);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |