/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
List
< String
> list
= Arrays .
asList ( ) ; Scanner scanner
= new Scanner
( System .
in ) ; System .
out .
println ( "Type a string and hit enter to enter it into the list. Type 'exit' when you are done." ) ; while ( scanner.hasNextLine ( ) && ! ( in = scanner.nextLine ( ) ) .equalsIgnoreCase ( "exit" ) ) {
list.add ( in) ;
}
System .
out .
println ( "Compiling now..." ) ; System .
out .
println ( toString
( list,
", " ,
". The end." ) ) ; scanner.close ( ) ;
}
public static String toString
( List
< String
> list
) { return toString( list, ", " , null ) ;
}
if ( list == null || list.isEmpty ( ) || list.get ( 0 ) == null )
return "" ;
if ( list.size ( ) == 1 )
return list.get ( 0 ) ;
if ( list.size ( ) == 2 )
return list.get ( 0 ) + " and " + list.get ( 1 ) ;
StringBuilder str = new StringBuilder( list.get ( 0 ) ) ;
for ( int i = 1 ; i < list.size ( ) - 1 ; i++ )
str.append ( separator) .append ( list.get ( i) ) ;
str.append ( separator) .append ( "and " ) .append ( list.get ( list.size ( ) - 1 ) ) .append ( ( ending != null ? ending : "" ) ) ;
return str.toString ( ) ;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCUxpc3Q8U3RyaW5nPiBsaXN0ID0gQXJyYXlzLmFzTGlzdCgpOwoJCVNjYW5uZXIgc2Nhbm5lciA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CgkJU3RyaW5nIGluOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiVHlwZSBhIHN0cmluZyBhbmQgaGl0IGVudGVyIHRvIGVudGVyIGl0IGludG8gdGhlIGxpc3QuIFR5cGUgJ2V4aXQnIHdoZW4geW91IGFyZSBkb25lLiIpOwoJCXdoaWxlIChzY2FubmVyLmhhc05leHRMaW5lKCkgJiYgIShpbiA9IHNjYW5uZXIubmV4dExpbmUoKSkuZXF1YWxzSWdub3JlQ2FzZSgiZXhpdCIpKSB7CgkJCWxpc3QuYWRkKGluKTsKCQl9CgkJU3lzdGVtLm91dC5wcmludGxuKCJDb21waWxpbmcgbm93Li4uIik7CgkJCQlTeXN0ZW0ub3V0LnByaW50bG4odG9TdHJpbmcobGlzdCwgIiwgIiwgIi4gVGhlIGVuZC4iKSk7CgkJCQlzY2FubmVyLmNsb3NlKCk7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKExpc3Q8U3RyaW5nPiBsaXN0KSB7CiAgCQlyZXR1cm4gdG9TdHJpbmcobGlzdCwgIiwgIiwgbnVsbCk7Cgl9CiAKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKExpc3Q8U3RyaW5nPiBsaXN0LCBTdHJpbmcgc2VwYXJhdG9yLCBTdHJpbmcgZW5kaW5nKSB7CiAgCQlpZiAobGlzdCA9PSBudWxsIHx8IGxpc3QuaXNFbXB0eSgpIHx8IGxpc3QuZ2V0KDApID09IG51bGwpCiAgICAJCXJldHVybiAiIjsKICAJCWlmIChsaXN0LnNpemUoKSA9PSAxKQogICAgCQlyZXR1cm4gbGlzdC5nZXQoMCk7CiAgCQlpZiAobGlzdC5zaXplKCkgPT0gMikKICAgIAkJcmV0dXJuIGxpc3QuZ2V0KDApICsgIiBhbmQgIiArIGxpc3QuZ2V0KDEpOwogIAkJU3RyaW5nQnVpbGRlciBzdHIgPSBuZXcgU3RyaW5nQnVpbGRlcihsaXN0LmdldCgwKSk7CiAgCQlmb3IgKGludCBpID0gMTsgaSA8IGxpc3Quc2l6ZSgpIC0gMTsgaSsrKQogICAgCQlzdHIuYXBwZW5kKHNlcGFyYXRvcikuYXBwZW5kKGxpc3QuZ2V0KGkpKTsKICAJCXN0ci5hcHBlbmQoc2VwYXJhdG9yKS5hcHBlbmQoImFuZCAiKS5hcHBlbmQobGlzdC5nZXQobGlzdC5zaXplKCkgLSAxKSkuYXBwZW5kKChlbmRpbmcgIT0gbnVsbCA/IGVuZGluZyA6ICIiKSk7CiAgCQlyZXR1cm4gc3RyLnRvU3RyaW5nKCk7Cgl9CgkKfQ==