Java - 126 Zeichen
minimiert:
class hjq{public static void main(String...w){for(char z='"'|0;++z!='a';)if("'()+.0;=OS".indexOf(z)==~0)System.out.print(z);}}
nicht minimiert:
class hjq {
public static void main(String... w) {
for (char z = '"'|0; ++z != 'a';) {
if ("'()+.0;=OS".indexOf(z) == ~0) {
System.out.print(z);
}
}
}
}
Dies ist ein interessantes Problem, da einzelne Token möglicherweise von ihrer längeren Form profitieren, da sie Zeichen wiederverwenden. Normalerweise String[]
wäre dies beispielsweise kürzer, String...
die eckigen Klammern in der bedingten Zeichenfolge sind jedoch nicht mehr erforderlich.
Ich fand den Trick darin, Zeichen am Anfang und am Ende des Bereichs zu verwenden, damit Sie sie von der Ausgabe ausschließen können, indem Sie einfach den Anfang und das Ende Ihrer Schleife ändern.
Für Java ist ein Schlüsselzeichen, das ausgeschlossen werden muss "
, da das in der Zeichenfolge einen Escape-Befehl erfordert, der \
zu Ihrem Programm beiträgt, und in die Zeichenfolge aufgenommen werden muss, die beiträgt \\
. Durch Entfernen "
aus der bedingten Zeichenfolge entfernen Sie 4 Zeichen. Dies kann erreicht werden, indem Sie sicherstellen, dass Sie
und verwenden !
und Ihre Schleife von starten #
.
Alle Kleinbuchstaben erscheinen am Ende des Bereichs, mit nur {
, |
, }
und ~
nach ihnen kommen. Aufgrund der Ausführlichkeit von Java werden die meisten Kleinbuchstaben nur für das Boilerplate verwendet. Ebenso {
und }
für ein Java-Programm trivial, weil das Boilerplate sie benötigt.
|
kann verwendet werden, wenn Sie eine oder-Bedingung haben, aber ich konnte keinen Weg finden, eine zu nutzen, die zu einem kürzeren Programm führt, als es nur |
als bitweiser Operator zu verwenden. Das |0
macht mich ein bisschen dreckig, weil es der einzige Teil ist, der ein Nopp ist, um den Charakter reinzuholen.
~0
Erträge -1
, was praktisch ist, weil wir das überprüfen müssen indexOf
. Wenn Sie dies mit "using !=
for the loop conditional" kombinieren, wird das <
Zeichen insgesamt eliminiert , was bedeutet, dass es nicht in die bedingte Zeichenfolge eingefügt werden muss.
0x20
zu0x7e
, die als das „druckbaren ASCII - Zeichen“ definiert sind. Tabulatoren und Zeilenumbrüche sind eigentlich Steuerzeichen.