System.out.println () को छोटा कैसे करें


122

कृपया सलाह दें कि मुझे कम अभिव्यक्ति का उपयोग करने के लिए कहां से दायित्व मिल सकता है System.out.println()और मुझे उस परिवाद को कहां रखना चाहिए।


2
आप इसका उपयोग केवल इसलिए करना चाहते हैं क्योंकि अभिव्यक्ति कम है?
एरिक रॉबर्टसन

61
यदि आप अपनी अभिव्यक्ति के लिए एक पुस्तकालय को जोड़ने जा रहे हैं, तो आप अपनी प्राथमिकताओं को क्रम से बाहर कर सकते हैं।
एरिक रॉबर्टसन

7
तुम यह गलत कर रहे हो, मुझ पर विश्वास करो।
पीटरके

6
मुझे लगता है कि यह कोड-गोल्फ टैग की आवश्यकता है।
मार्क पीटर्स

3
System.out का उपयोग आम तौर पर एक अच्छी तरह से डिज़ाइन किए गए एप्लिकेशन में खराब होता है, इसलिए उत्तर वास्तव में मायने नहीं रखते ...
Bananeweizen

जवाबों:


310

लॉगिंग लाइब्रेरी

आप पहिया का फिर से आविष्कार करने के बजाय लॉगिंग लाइब्रेरी का उपयोग कर सकते हैं। उदाहरण के लिए Log4j विभिन्न संदेशों की तरह तरीके प्रदान करेगा info(), warn()औरerror()

घरेलू तरीके

या बस printlnअपनी खुद की एक विधि बनाएं और इसे कॉल करें:

void println(Object line) {
    System.out.println(line);
}

println("Hello World");

आईडीई कीबोर्ड शॉर्टकट

इंटेलीज आईडीईए और नेटबीन्स:

आप soutतब टाइप करते हैं TAB, और यह आपके लिए टाइप System.out.println()करता है, सही जगह पर कर्सर के साथ।

ग्रहण:

टाइप करें sysoफिर CTRL+ दबाएँ SPACE

अन्य

अपने पसंदीदा टेक्स्ट एडिटर / IDE के लिए "स्निपेट्स" प्लगइन खोजें

स्थैतिक आयात

import static java.lang.System.out;

out.println("Hello World");

JVM भाषाओं का अन्वेषण करें

स्काला

println("Hello, World!")

ग्रूवी

println "Hello, World!" 

Jython

print "Hello, World!" 

JRuby

puts "Hello, World!" 

Clojure

(println "Hello, World!")

राइनो

print('Hello, World!'); 

18
import static System.out;एक दुर्लभ अभ्यास है, और मेरी राय में काफी अनावश्यक है, और इस तरह से देखने out.printlnसे कम से कम शुरू में भ्रम हो सकता है। स्थैतिक आयात में अधिक मुहावरेदार उपयोग होता है, लेकिन यह विशेष मामला यह नहीं है।
पॉलीजेन लुब्रीकेंट

11
Eclspe और Netbeans शॉर्टकट के लिए +1। मैं स्थिर आयात के बारे में अनिर्दिष्ट हूं।
डेविड जे। लिस्जेवस्की

4
ग्रहण में आप जावा> संपादक>sysout टेम्प्लेट में टेम्पलेट बदल सकते हैं । आप को बदल कर इसे और अधिक कम भी कर सकते हैं द्वारा या तो :)sysoutso
BalusC

3
@BalusC बेहतर विचार - soCTRL + SPACE ब्राउज़र विंडो में स्टैक ओवरफ्लो खोलता है और आप कोडिंग बंद कर देते हैं
Michael Mrozek

1
soutIntelliJ IDEA में भी काम करता है (NetBeans ने शायद उनसे इसे कॉपी किया है :) वैसे भी, यह उल्लेख करने के लिए अच्छा है कि - System.out.println()यह IMHO के साथ अप्रासंगिक हो जाता है।
जोनीक

27
void p(String l){
System.out.println(l);
}

सबसे छोटा। इसका लाभ उठाएं।


7
+1, सिर्फ इसलिए कि यह जावा को एक बदलाव के लिए कोड गोल्फ देखने के लिए खुश कर रहा है। ;-)
चिमेरकोडर

वास्तव में यह "शुरुआत जावा प्रोग्रामिंग: ऑब्जेक्ट-ओरिएंटेड दृष्टिकोण" से सीधे बाहर है यहां wrox.com/WileyCDA/WroxTitle/…
uchuugaka

17

जावा एक क्रिया भाषा है।

यदि आप केवल 3 दिन में हैं, और यह पहले से ही आपको परेशान कर रहा है, तो शायद आप स्कैला की तरह एक अलग भाषा सीखना बेहतर होगा:

scala> println("Hello World")
Hello World

एक ढीले अर्थ में, यह "लाइब्रेरी" का उपयोग करने के लिए कम भावों को सक्षम करने के लिए योग्य होगा;)


4
यह जावा में मेरा 5 वां वर्ष है, क्या मैं अभी भी समय में हूं?
टॉम

2
पूर्ण रूप से! जावा डेवलपर्स के लिए स्काला में बहुत ही क्रमिक सीखने की अवस्था है।
dbyrne

मैं क्लोजर का आदी हूं
पीटर

1
सही, जावा एक क्रिया भाषा है; ओपी की तरह अपने आप से सवाल पूछना यह जानने का एक सामान्य हिस्सा है।
बरफिन

6
मुझे जावा की लत है।
ceklock

14

कुछ दिलचस्प विकल्प:

विकल्प 1

PrintStream p = System.out;
p.println("hello");

विकल्प 2

PrintWriter p = new PrintWriter(System.out, true);
p.println("Hello");

9

के लिए IntelliJ विचार प्रकार soutऔर प्रेसTab

के लिए ग्रहण प्रकार sysoऔर प्रेस Ctrl+ Space


2
आपका जवाब शायद एक आईडीई पर निर्भर करता है। आप यह समझाना चाहते हैं कि यह शॉर्टकट कहां काम करता है। अन्यथा आपका जवाब वास्तव में किसी की मदद नहीं करता है।
डिफ़ॉल्ट लोकेल

1
@defaultlocale धन्यवाद। हाँ यह सच हे। मैंने कुछ विशिष्ट जानकारी जोड़ी।
मैक्स गबरदखमानोव

7

Log4j या JDK लॉगिंग का उपयोग करें ताकि आप कक्षा में एक स्थिर लकड़हारा बना सकें और इसे इस तरह बुला सकें:

LOG.info("foo")

2

जैसा कि बुक्कल ने समझाया था, कीबोर्ड शॉर्टकट के लिए, netbeansआप टूल-> विकल्प-> एडिटर-> कोड टेम्प्लेट में जा सकते हैं और अपने स्वयं के शॉर्टकट जोड़ या संपादित कर सकते हैं।

में Eclipseयह टेम्पलेट्स पर है।


1

BlueJ के लिए मेरा समाधान प्रोग्राम फ़ाइलों (x86) \ BlueJ \ lib \ english \ टेम्पलेट्स \ Newclass में नए क्लास टेम्पलेट "stdclass.tmpl" को संपादित करना और इस विधि को जोड़ना है:

public static <T> void p(T s)
{
    System.out.println(s);
}

या यह अन्य संस्करण:

public static void p(Object s)
{
    System.out.println(s);
}

ग्रहण के लिए मैं सुझाए गए शॉर्टकट का उपयोग कर रहा हूँ syso + <Ctrl> + <Space>:)


1

एक मामूली बात शायद, लेकिन:

import static System.out;

public class Tester
{
    public static void main(String[] args)
    {
        out.println("Hello!"); 
    }
}

... एक संकलन समय त्रुटि उत्पन्न की। मैंने पढ़ने के लिए पहली पंक्ति को संपादित करके त्रुटि को ठीक किया:

import static java.lang.System.out;

1
पैकेज कुछ .use.methods;

सार्वजनिक वर्ग B {

    सार्वजनिक स्थैतिक शून्य p (ऑब्जेक्ट s) {
        Println (रों);
    }
}
पैकेज फर्स्ट। java.lesson;

आयात स्थैतिक some.useful.methods.B। *;

सार्वजनिक वर्ग ए {

    सार्वजनिक स्थैतिक शून्य main (String [] args) {

        पी ( "हैलो!");

    }
}


-1

System.out.println () का उपयोग करना बुरा अभ्यास है (लॉगिंग फ्रेमवर्क का बेहतर उपयोग) -> आपको अपने कोड आधार में कई आवृत्तियाँ नहीं होनी चाहिए। इसे छोटा करने के लिए दूसरी विधि का उपयोग करना एक अच्छा विकल्प नहीं लगता है।


मैं असहमत हूँ। यदि आपके पास पहले से ही सामान्य लॉगिंग है, तो इस समय जो आपको देखने की जरूरत है, उसके बीच अंतर करने के लिए Sysout का उपयोग करना एक बेहतर तरीका है। इसके अलावा, sysout का उपयोग करना बहुत तेज है, और यदि आप हर दूसरे काउंटिंग में बहुत डिबगिंग करते हैं।
breakline
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.