/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
import java.util.stream.Collectors ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
int targetCodePoint = "z" .codePointAt ( 0 ) ; // Get the code point assigned to the letter “z”, 122.
List < String > inputs
= List .
of ( "computers" ,
"information systems" ,
"zebra" ) ;
// Loop each input.
loopingInputs:
{
// Loop the code point of each character.
int [ ] codePoints = input.codePoints ( ) .toArray ( ) ;
for ( int codePoint : codePoints )
{
if ( codePoint == targetCodePoint ) // If this character is our target letter “z” (they share the same code point number), then we have a match. Remember this word, and bail out of inner loop.
{
hits.add ( input ) ;
break loopingInputs;
}
}
}
System .
out .
println ( "hits = " + hits
) ;
// Alternate approach.
.of ( "computers" , "information systems" , "zebra" )
.stream ( )
.filter (
input -> input.codePoints ( ) .anyMatch ( codePoint -> codePoint == "z" .codePointAt ( 0 ) )
)
.collect ( Collectors.toList ( ) ) // Or `.toList()` in later versions of Java.
) ;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS51dGlsLnN0cmVhbS5Db2xsZWN0b3JzIDsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CiAgICAgICAgaW50IHRhcmdldENvZGVQb2ludCA9ICJ6Ii5jb2RlUG9pbnRBdCggMCApOyAvLyBHZXQgdGhlIGNvZGUgcG9pbnQgYXNzaWduZWQgdG8gdGhlIGxldHRlciDigJx64oCdLCAxMjIuCiAgICAgICAgTGlzdCA8IFN0cmluZyA+IGlucHV0cyA9IExpc3Qub2YoICJjb21wdXRlcnMiICwgImluZm9ybWF0aW9uIHN5c3RlbXMiICwgInplYnJhIiApOwogICAgICAgIExpc3QgPCBTdHJpbmcgPiBoaXRzID0gbmV3IEFycmF5TGlzdCA8PiggaW5wdXRzLnNpemUoKSApOwoKICAgICAgICAvLyBMb29wIGVhY2ggaW5wdXQuCiAgICAgICAgbG9vcGluZ0lucHV0czoKICAgICAgICBmb3IgKCBTdHJpbmcgaW5wdXQgOiBpbnB1dHMgKQogICAgICAgIHsKICAgICAgICAgICAgLy8gTG9vcCB0aGUgY29kZSBwb2ludCBvZiBlYWNoIGNoYXJhY3Rlci4KICAgICAgICAgICAgaW50W10gY29kZVBvaW50cyA9IGlucHV0LmNvZGVQb2ludHMoKS50b0FycmF5KCk7CiAgICAgICAgICAgIGZvciAoIGludCBjb2RlUG9pbnQgOiBjb2RlUG9pbnRzICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKCBjb2RlUG9pbnQgPT0gdGFyZ2V0Q29kZVBvaW50ICkgIC8vIElmIHRoaXMgY2hhcmFjdGVyIGlzIG91ciB0YXJnZXQgbGV0dGVyIOKAnHrigJ0gKHRoZXkgc2hhcmUgdGhlIHNhbWUgY29kZSBwb2ludCBudW1iZXIpLCB0aGVuIHdlIGhhdmUgYSBtYXRjaC4gUmVtZW1iZXIgdGhpcyB3b3JkLCBhbmQgYmFpbCBvdXQgb2YgaW5uZXIgbG9vcC4KICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBoaXRzLmFkZCggaW5wdXQgKTsKICAgICAgICAgICAgICAgICAgICBicmVhayBsb29waW5nSW5wdXRzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJoaXRzID0gIiArIGhpdHMgKTsKICAgICAgICAKICAgICAgICAvLyBBbHRlcm5hdGUgYXBwcm9hY2guCgkJU3lzdGVtLm91dC5wcmludGxuKAoJCQlMaXN0CgkJCQkub2YoICJjb21wdXRlcnMiICwgImluZm9ybWF0aW9uIHN5c3RlbXMiICwgInplYnJhIiApCgkJCQkuc3RyZWFtKCkKCQkJCS5maWx0ZXIoIAoJCQkJCWlucHV0IC0+IGlucHV0LmNvZGVQb2ludHMoKS5hbnlNYXRjaCggY29kZVBvaW50IC0+IGNvZGVQb2ludCA9PSAieiIuY29kZVBvaW50QXQoIDAgKSApIAoJCQkJKSAKCQkJCS5jb2xsZWN0KCBDb2xsZWN0b3JzLnRvTGlzdCgpICkgIC8vIE9yIGAudG9MaXN0KClgIGluIGxhdGVyIHZlcnNpb25zIG9mIEphdmEuCgkJKTsKCX0KfQ==