[Java] String... 스트링[] 뭐가 좋을까?가변 매개변수 및 정렬
13761 단어 Java
String... 스트링[] 뭐가 좋을까?가변 매개변수 및 정렬
가변 매개변수로 받아들일지 아니면 정렬로 받아들일지.
둘 다 같은 건데 뭐가 좋을까요?
ArgumentsWorkMain.javapublic class ArgumentsWorkMain {
public static void main(String... args) {
ArgumentsWorkMain me = new ArgumentsWorkMain();
// test1 は可変引数
// test1(String str, String... args)
me.test1("");
me.test1("a", "a");
me.test1("a b", "a", "b");
me.test1("", new String[] {});
me.test1("a", new String[] { "a" });
me.test1("a b", new String[] { "a", "b" });
me.test1("((null))", null);
// ↑ この null は (String[]) null とみなされるが (String) null にもできる
me.test1("((null))", (String[]) null);
me.test1("(null)", (String) null);
// test2 は配列
// test2(String str, String[] args)
me.test2("", new String[] {});
me.test2("a", new String[] { "a" });
me.test2("a b", new String[] { "a", "b" });
me.test2("((null))", null);
me.test2("((null))", (String[]) null);
// me.test2("(null)", (String) null); // -> Error
}
void test1(String str, String... args) {
StringBuilder buf = new StringBuilder();
if (args != null)
for (String e : args)
if (e != null)
buf.append(e).append(" ");
else
buf.append("(null)");
else
buf.append("((null))");
if (!str.equals(buf.toString().trim()))
System.out.println(str + " != " + buf);
}
void test2(String str, String[] args) {
StringBuilder buf = new StringBuilder();
if (args != null)
for (String e : args)
if (e != null)
buf.append(e).append(" ");
else
buf.append("(null)");
else
buf.append("((null))");
if (!str.equals(buf.toString().trim()))
System.out.println(str + " != " + buf);
}
}
특별히 가다.보통 선물 안 주죠?
결론: 각자 좋아하는 사람을 선택한다.
나는 가변 파라미터를 비교적 좋아한다.
↓ 이런 코드도 썼지?하나하나귀찮아요!import java.util.Arrays;
import java.util.List;
...
void test3() {
List<String> list0 = Arrays.asList();
List<String> list1 = Arrays.asList("a");
List<String> list2 = Arrays.asList("a", "b");
List<String> list3 = Arrays.asList(new String[] {"a", "b", "c"});
test2("", (String[]) list0.toArray());
test2("a", (String[]) list1.toArray());
test2("a b", (String[]) list2.toArray());
test2("a b c", (String[]) list3.toArray());
}
끝.
Reference
이 문제에 관하여([Java] String... 스트링[] 뭐가 좋을까?가변 매개변수 및 정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/LightSpeedC/items/214fc663c93cd3dd1df6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public class ArgumentsWorkMain {
public static void main(String... args) {
ArgumentsWorkMain me = new ArgumentsWorkMain();
// test1 は可変引数
// test1(String str, String... args)
me.test1("");
me.test1("a", "a");
me.test1("a b", "a", "b");
me.test1("", new String[] {});
me.test1("a", new String[] { "a" });
me.test1("a b", new String[] { "a", "b" });
me.test1("((null))", null);
// ↑ この null は (String[]) null とみなされるが (String) null にもできる
me.test1("((null))", (String[]) null);
me.test1("(null)", (String) null);
// test2 は配列
// test2(String str, String[] args)
me.test2("", new String[] {});
me.test2("a", new String[] { "a" });
me.test2("a b", new String[] { "a", "b" });
me.test2("((null))", null);
me.test2("((null))", (String[]) null);
// me.test2("(null)", (String) null); // -> Error
}
void test1(String str, String... args) {
StringBuilder buf = new StringBuilder();
if (args != null)
for (String e : args)
if (e != null)
buf.append(e).append(" ");
else
buf.append("(null)");
else
buf.append("((null))");
if (!str.equals(buf.toString().trim()))
System.out.println(str + " != " + buf);
}
void test2(String str, String[] args) {
StringBuilder buf = new StringBuilder();
if (args != null)
for (String e : args)
if (e != null)
buf.append(e).append(" ");
else
buf.append("(null)");
else
buf.append("((null))");
if (!str.equals(buf.toString().trim()))
System.out.println(str + " != " + buf);
}
}
import java.util.Arrays;
import java.util.List;
...
void test3() {
List<String> list0 = Arrays.asList();
List<String> list1 = Arrays.asList("a");
List<String> list2 = Arrays.asList("a", "b");
List<String> list3 = Arrays.asList(new String[] {"a", "b", "c"});
test2("", (String[]) list0.toArray());
test2("a", (String[]) list1.toArray());
test2("a b", (String[]) list2.toArray());
test2("a b c", (String[]) list3.toArray());
}
Reference
이 문제에 관하여([Java] String... 스트링[] 뭐가 좋을까?가변 매개변수 및 정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/LightSpeedC/items/214fc663c93cd3dd1df6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)