Java, 212 196 ไบต์ (171 ไบต์พร้อมด้วยกฎการเข้ารหัสยากที่น่าสงสัย)
ขอบคุณ @Cruncher สำหรับการย่อให้สั้นลง ~ 15 ไบต์!
ฉันไม่สงสัยเลยว่านี่สามารถเล่นกอล์ฟได้
import java.nio.file.*;class A{public static void main(String[]a){new A();}A(){try{System.out.print(new String(Files.readAllBytes(Paths.get(getClass().getName()+".java"))));}catch(Exception e){}}}
หรือวิธีอื่นโดยใช้วิธีการคงที่ (และชื่อของชั้นเรียน) ฉันได้รับ 171 ไบต์ ฉันไม่แน่ใจว่าสิ่งนี้มีคุณสมบัติเป็นฮาร์ดโค้ดหรือไม่
import java.nio.file.*;class A{public static void main(String[]a)throws Exception{System.out.print(new String(Files.readAllBytes(Paths.get(A.class.getName()+".java"))));}}
ใช้ตัวสร้างเพื่อรับชื่อคลาสโดยวิธีการไม่คงที่ โดยใช้วิธีการแบบคงที่ ( A.class.getName()) คือจริงๆเขียนยากดังนั้นผมจึงใช้วิธี 'เหมาะสม' ใช้A.class.getName()รหัสนี้สั้นลงถึง 171 ไบต์
รุ่นที่อ่านได้:
ใช้ตัวสร้างและthis.getClass():
import java.nio.file.*;
class A{
public static void main(String[]a) {
new A();
}
A(){
try{
System.out.print(
new String(
Files.readAllBytes(
Paths.get(
getClass().getName()+".java"))));
}
catch(Exception e) {}
}
}
ใช้วิธีการคงที่A.class.getName():
import java.nio.file.*;
class A {
public static void main(String[] a) throws Exception {
System.out.print(
new String(
Files.readAllBytes(
Paths.get(
A.class.getName()+".java"))));
}
}
จับไบต์ทั้งหมดของไฟล์ในครั้งเดียวและส่งออกไปยัง STDOUT ตรงไปตรงมาสวย