문자열 변수 보간 Java
자바에서의 문자열 구축은 나를 혼란스럽게 한다.나는 다음과 같은 일을 하는 것을 싫어한다.
url += "u1=" + u1 + ";u2=" + u2 + ";u3=" + u3 + ";u4=" + u4 + ";";
url += "x=" + u1 + ";y=" + u2 + ";z=" + u3 + ";da1=" + u4 + ";";
url += "qty=1;cost=" + orderTotal + ";ord=" + orderId + "?";
String Builder를 사용하면 다음과 같습니다.
url.append("u1=");
url.append(u1);
url.append(";u2=");
url.append(u2);
url.append(";u3=");
url.append(u3);
url.append(";u4=");
url.append(u4);
url.append(";");
url.append("x=");
url.append(u1);
url.append(";y=");
url.append(u2);
url.append(";z=");
url.append(u3);
url.append(";da1=");
url.append(u4);
url.append(";");
url.append("qty=1;");
url.append("cost=");
url.append(orderTotal);
url.append(";ord=");
url.append(orderId);
url.append("?");
확실히 내가 뭔가 놓치고 있어.더 나은 방법이 있을 거야예를 들어 다음과 같습니다.
대신:
urlString += "u1=" + u1 + ";u2=" + u2 + ";u3=" + u3 + ";u4=" + u4 + ";";
다음 작업을 수행합니다.
urlString += Interpolator("u1=%s;u2=%s;u3=%s;u4=%s;", u1, u2, u3, u4);
또는 다음과 같이 입력합니다.
urlStringBuilder.append(Interpolator("u1=%s;u2=%s;u3=%s;u4=%s;", u1, u2, u3, u4));
Java 5 이상을 사용하는 경우 다음을 사용할 수 있습니다.
urlString += String.format("u1=%s;u2=%s;u3=%s;u4=%s;", u1, u2, u3, u4);
자세한 것은, 을 참조해 주세요.
Java 에서는 변수 보간은 없습니다.변수 보간은 문자열 내의 값을 사용한 변수 치환입니다.Ruby의 예:
#!/usr/bin/ruby
age = 34
name = "William"
puts "#{name} is #{age} years old"
Ruby 인터프리터는 자동으로 변수를 문자열 내의 값으로 바꿉니다.우리가 보간할 것이라는 사실은 표식 문자에 의해 암시된다.루비에서는 #{}입니다.Perl에서는 $, % 또는 @ 중 하나입니다.Java는 이러한 문자만 인쇄하고 전개하지 않습니다.
Java에서는 변수 보간이 지원되지 않습니다.이것 대신 문자열 포맷이 있습니다.
package com.zetcode;
public class StringFormatting
{
public static void main(String[] args)
{
int age = 34;
String name = "William";
String output = String.format("%s is %d years old.", name, age);
System.out.println(output);
}
}
Java에서는 String을 사용하여 새 문자열을 만듭니다.format() 메서드입니다.결과는 같지만 방법은 다르다.
http://en.wikipedia.org/wiki/Variable_interpolation 를 참조해 주세요.
2019년 현재, JEP 326(원시 문자열 리터럴)은 철회되고 여러 JEP로 대체되어 결국 JEP 378: 텍스트 블록이 Java 15로 전달되었습니다.
텍스트 블록은 대부분의 이스케이프 시퀀스의 필요성을 회피하고 예측 가능한 방법으로 문자열을 자동으로 포맷하며 필요에 따라 개발자에게 형식을 제어할 수 있는 여러 줄의 문자열 리터럴입니다.
단, 문자열 보간은 아직 없습니다.
비목표: …텍스트 블록은 문자열 보간을 직접 지원하지 않습니다.보간은 향후 JEP에서 고려될 수 있다.한편, 새로운 인스턴스 메서드는 보간이 필요할 수 있는 상황에서 도움이 됩니다.
덧붙이자면 java.text도 있습니다.숫자 인수 인덱스를 사용할 수 있는 MessageFormat.
설명서에서 첫 번째 예 추가
int planet = 7;
String event = "a disturbance in the Force";
String result = MessageFormat.format(
"At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
planet, new Date(), event);
결과:
At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.
String.format()
살려주세요!!
JVM용 슈퍼 자바인 Kotlin을 사용하면 ES5, Ruby, Python과 같은 문자열을 삽입할 수 있습니다.
class Client(val firstName: String, val lastName: String) {
val fullName = "$firstName $lastName"
}
언급URL : https://stackoverflow.com/questions/6389827/string-variable-interpolation-java
'IT이야기' 카테고리의 다른 글
Vue 2 후크 준비 완료 (0) | 2022.06.06 |
---|---|
pthread_create()에 의해 호출되는 함수 인수가 여러 개입니까? (0) | 2022.06.05 |
time_t는 최종적으로 typedef는 무엇입니까? (0) | 2022.06.05 |
프로펠 변경 시 컴포넌트 업데이트 (0) | 2022.06.05 |
"export 'default'('_vue_script__'로 표시됨)를 '!babel-default'에서 찾을 수 없습니다. (0) | 2022.06.05 |