実行環境はMacBook Air.
$ uname -m -r -s -v
Darwin 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
Javaのサンプルコードと実行結果。
$ java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode)
$ cat ./SplitSample.java
public class SplitSample{
public static void main(String[] args){
String[] targets = {
"1-2",
"1--2",
"1-",
"1--",
"-2",
"--2",
"-",
"--",
"---",
"1-2-3",
"-1-2-3-",
"-1--2--3-",
};
for(String s : targets){
String[] a = s.split("-");
System.out.println(s + " => " + inspect(a));
}
}
private static String inspect(String[] a){
String buf = "[";
if(a.length > 0){
for(String s : a){
buf += "\"" + s + "\", ";
}
buf = buf.substring(0, buf.length() - 2);
}
buf += "]";
return buf;
}
}
$ javac ./SplitSample.java
$ java SplitSample
1-2 => ["1", "2"]
1--2 => ["1", "", "2"]
1- => ["1"]
1-- => ["1"]
-2 => ["", "2"]
--2 => ["", "", "2"]
- => []
-- => []
--- => []
1-2-3 => ["1", "2", "3"]
-1-2-3- => ["", "1", "2", "3"]
-1--2--3- => ["", "1", "", "2", "", "3"]
Rubyのサンプルコードと実行結果。
$ ruby -v
ruby 1.8.7 (2010-12-23 patchlevel 330) [i686-darwin10]
$ cat ./split_sample.rb
targets = [
'1-2',
'1--2',
'1-',
'1--',
'-2',
'--2',
'-',
'--',
'---',
'1-2-3',
'-1-2-3-',
'-1--2--3-',
]
targets.each{|s|
a = s.split('-')
puts "#{s} => #{a.inspect}"
}
$ ruby ./split_sample.rb
1-2 => ["1", "2"]
1--2 => ["1", "", "2"]
1- => ["1"]
1-- => ["1"]
-2 => ["", "2"]
--2 => ["", "", "2"]
- => []
-- => []
--- => []
1-2-3 => ["1", "2", "3"]
-1-2-3- => ["", "1", "2", "3"]
-1--2--3- => ["", "1", "", "2", "", "3"]
まったく同じ結果に。
tags: java ruby
Posted by NI-Lab. (@nilab)