Simplified some logic in Java QrSegmentAdvanced using Java SE 8 streams and lambdas.

This commit is contained in:
Project Nayuki 2018-10-03 21:10:13 +00:00
parent 18ff8dc0e5
commit 46b6425838
1 changed files with 5 additions and 8 deletions

View File

@ -234,12 +234,12 @@ public final class QrSegmentAdvanced {
public static QrSegment makeKanji(String text) {
Objects.requireNonNull(text);
BitBuffer bb = new BitBuffer();
for (int i = 0; i < text.length(); i++) {
int val = UNICODE_TO_QR_KANJI[text.charAt(i)];
text.chars().forEachOrdered(c -> {
int val = UNICODE_TO_QR_KANJI[c];
if (val == -1)
throw new IllegalArgumentException("String contains non-kanji-mode characters");
bb.appendBits(val, 13);
}
});
return new QrSegment(Mode.KANJI, text.length(), bb);
}
@ -256,11 +256,8 @@ public final class QrSegmentAdvanced {
*/
public static boolean isEncodableAsKanji(String text) {
Objects.requireNonNull(text);
for (int i = 0; i < text.length(); i++) {
if (!isKanji(text.charAt(i)))
return false;
}
return true;
return text.chars().allMatch(
c -> isKanji((char)c));
}