"a,b,c,d".split(",", 2)
は a
と b,c,d
に分割されるのを期待してるんですが、各言語どうでしょうか?
Ruby
irb(main):001:0> "a,b,c,d".split(",", 2) => ["a", "b,c,d"]
JavaScript
> "a,b,c,d".split(",", 2) [ 'a', 'b' ]
🙀
Go
package main import ( "fmt" "strings" ) func main() { s := "a,b,c,d" a := strings.SplitN(s, ",", 2) fmt.Printf("%#v", a) }
[]string{"a", "b,c,d"}
PHP
$a = "a,b,c,d"; $a = explode(",", $a, 2); print_r($a);
Array ( [0] => a [1] => b,c,d )
Java
import java.util.Arrays; class Main { public static void main(String[] args) { var s = "a,b,c,d"; var a = s.split(",", 2); Arrays.stream(a).forEach(e -> System.out.println(e)); } }
a b,c,d
Rust
fn main() { let s = "a,b,c,d"; let a = s.splitn(2, ","); for i in a { println!("{}", i); } }
a b,c,d
結論
JavaScriptは異端児
追記
もっと異端児がいた、python
>>> "a,b,c,d".split(",", 2) ['a', 'b', 'c,d']