Java 包含双引号和变量的字符串
我正在尝试在Win7机器上使用sendEmail发送电子邮件。它工作正常,但我决定将主题和消息作为参数发送到sendEmail方法 由于主题和正文包含破折号字符,sendEmail无法正确响应,因为它也使用了破折号字符。我需要做的是在subjectText变量和messageText变量周围添加双引号Java 包含双引号和变量的字符串,java,string,escaping,Java,String,Escaping,我正在尝试在Win7机器上使用sendEmail发送电子邮件。它工作正常,但我决定将主题和消息作为参数发送到sendEmail方法 由于主题和正文包含破折号字符,sendEmail无法正确响应,因为它也使用了破折号字符。我需要做的是在subjectText变量和messageText变量周围添加双引号 stdin.println("sendemail -t " + emailAddresses + " -f admin@xyz.com -u " + subjectText
stdin.println("sendemail -t " + emailAddresses + " -f admin@xyz.com -u " +
subjectText + " -m " + messageText + " -s smtp.gmail.com:25");
我试过这个:
stdin.println("sendemail -t " + emailAddresses + " -f admin@xyz.com -u " + \" +
subjectText + "\"+ -m "\"+ messageText + "\" -s smtp.gmail.com:25");
但它不起作用
输出需要如下所示:
"sendemail -t tome@isp.com -f admin@xyz.com -u "Subject with a - char" -m "message body with a - char" -s smtp.gmail.com:25"
cmd将显示在我的Eclipse控制台中
感谢您的帮助……您的转义双引号必须位于字符串文字本身的内部。试一试
stdin.println("sendemail -t " + emailAddresses + " -f admin@xyz.com -u \"" +
subjectText + "\" -m \"" + messageText + "\" -s smtp.gmail.com:25");
转义的双引号必须位于字符串文字本身的内部。试一试
stdin.println("sendemail -t " + emailAddresses + " -f admin@xyz.com -u \"" +
subjectText + "\" -m \"" + messageText + "\" -s smtp.gmail.com:25");
正如其他人所说,转义引号必须在文本中 作为思考的额外食物;使用
String.format()
或使用StringBuilder
创建包含变量的字符串时,有时会更简洁或更不复杂
例如,使用String.format
String str = String.format(
"sendemail -t %s -f admin@xyz.com -u \"%s\" -m \"%s\" -s smtp.gmail.com:25",
emailAddress, subjectText, messageText);
正如其他人所说,转义引号必须在文本中 作为思考的额外食物;使用
String.format()
或使用StringBuilder
创建包含变量的字符串时,有时会更简洁或更不复杂
例如,使用String.format
String str = String.format(
"sendemail -t %s -f admin@xyz.com -u \"%s\" -m \"%s\" -s smtp.gmail.com:25",
emailAddress, subjectText, messageText);