كيف يمكنني جعل عروض أسعار طباعة جافا ، مثل "مرحبا"؟

StackOverflow https://stackoverflow.com/questions/3844595

سؤال

كيف يمكنني جعل طباعة جافا "Hello"?

عندما أكتب System.out.print("Hello"); سيكون الإخراج Hello. ما أبحث عنه "Hello" مع الاقتباسات ("").

هل كانت مفيدة؟

المحلول

System.out.print("\"Hello\"");

يجب الهروب من شخصية اقتباس مزدوج مع تراجع خلفي في سلسلة Java حرفية. تشمل الشخصيات الأخرى التي تحتاج إلى معاملة خاصة:

  • عودة النقل والخط الجديد: "\r" و "\n"
  • backslash: "\\\\"
  • اقتباس واحد: "\'"
  • علامة التبويب الأفقية وتغذية النموذج: "\t" و "\f"

يمكن العثور على القائمة الكاملة لسلسلة Java والهروب الحرفي في القسم 3.10.6 من JLS.

تجدر الإشارة أيضًا إلى أنه يمكنك تضمين أحرف Unicode التعسفية في الكود المصدري الخاص بك باستخدام تسلسل Unicode Escape لنموذج " uxxxx" حيث يكون "X" S Quexadecimal Sigits. ومع ذلك ، فهذه تختلف عن السلسلة العادية والشخصية التي تهرب من حيث يمكنك استخدامها في أي مكان في برنامج Java ... ليس فقط في الحرفية والأحرف الشخصية ؛ انظر أقسام JLS 3.1, 3.2 و 3.3 للحصول على تفاصيل حول استخدام Unicode في كود مصدر Java.

أنظر أيضا:

نصائح أخرى

char ch='"';

System.out.println(ch + "String" + ch);

أو

System.out.println('"' + "ASHISH" + '"');

الهروب من الربعات المزدوجة في سلسلتك: "\"Hello\""

المزيد عن الموضوع (تحقق من جزء "تسلسل الهروب")

يمكنك القيام بذلك باستخدام حرف Unicode أيضًا

System.out.print('\u0022' + "Hello" + '\u0022');
System.out.println("\"Hello\""); 

إضافة أحرف الاقتباس الفعلي ليست سوى جزء صغير من المشكلة ؛ بمجرد القيام بذلك ، من المحتمل أن تواجه المشكلة الحقيقية: ماذا يحدث إذا كانت السلسلة تحتوي بالفعل على علامات اقتباس ، أو خلاصات الخطوط ، أو غيرها من الأحرف غير القابلة للطباعة؟

الطريقة التالية ستهتم بكل شيء:

public static String escapeForJava( String value, boolean quote )
{
    StringBuilder builder = new StringBuilder();
    if( quote )
        builder.append( "\"" );
    for( char c : value.toCharArray() )
    {
        if( c == '\'' )
            builder.append( "\\'" );
        else if ( c == '\"' )
            builder.append( "\\\"" );
        else if( c == '\r' )
            builder.append( "\\r" );
        else if( c == '\n' )
            builder.append( "\\n" );
        else if( c == '\t' )
            builder.append( "\\t" );
        else if( c < 32 || c >= 127 )
            builder.append( String.format( "\\u%04x", (int)c ) );
        else
            builder.append( c );
    }
    if( quote )
        builder.append( "\"" );
    return builder.toString();
}
System.out.println("\"Hello\"")
System.out.print("\"Hello\"");

أنت تبحث عن تسلسلات الهروب

شاهد المزيد قائمة تسلسل الهروب

هناك طريقتان سهلين:

  1. استخدام backslash \ قبل اقتباسات مزدوجة.
  2. استخدم اقتباسين واحد بدلاً من اقتباسات مزدوجة مثل '' بدلاً من "

فمثلا:

System.out.println("\"Hello\"");                       
System.out.println("''Hello''"); 

استخدم تسلسل الهروب.

\"Hello\"

هذا سوف يطبع "مرحبا".

لاحظ ، هناك بعض الأشياء التي يجب ملاحظتها عند الجري مع التراجعات المتخلفة بأحرف محددة.

System.out.println("Hello\\\");

سيكون الإخراج أعلاه:

مرحبًا


System.out.println(" Hello\"  ");

سيكون الإخراج أعلاه:

مرحبًا"

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top