Java에서 toString 메서드를 사용하여 int 어레이를 문자열로 변환하는 방법
나는 그것을 사용하려고 노력하고 있다.toString(int[])
하지만 난 내가 잘못하고 있다고 생각해:
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Arrays.html#toString(int[]
내 코드:
int[] array = new int[lnr.getLineNumber() + 1];
int i = 0;
System.out.println(array.toString());
출력:
[I@23fc4bec
또한 이렇게 인쇄를 해 보았지만:
System.out.println(new String().toString(array)); // **error on next line**
The method toString() in the type String is not applicable for the arguments (int[])
더 크고 복잡한 코드에서 이 코드를 빼냈지만, 필요하면 추가할 수 있어.그러나 이것은 일반적인 정보를 제공해야 한다.
Oracle 설명서와 같은 출력을 찾고 있으며,
문자열 표현은 대괄호("[]")로 둘러싸인 배열 요소의 목록으로 구성된다.인접 요소는 문자 ", " (쉼표 뒤에 공백이 있음)로 구분된다.
네가 원하는 것은 이다.Arrays.toString(int[])
방법:
import java.util.Arrays;
int[] array = new int[lnr.getLineNumber() + 1];
int i = 0;
..
System.out.println(Arrays.toString(array));
정적이 있다.Arrays.toString
모든 원시 Java 유형에 대한 도우미 방법: 에 대한 방법은 다음과 같다.
public static String toString(int[] a)
지정한 배열의 내용에 대한 문자열 표현을 반환한다.문자열 표현은 대괄호로 둘러싸인 배열 요소의 목록으로 구성된다.
"[]"
되어 있다는 문자로 된 것이다.", "
(쉼표 뒤에 공백이 있음).다음과 같이 요소가 문자열로 변환됨String.valueOf(int)
. 반환"null"
만일a
무효다.
System.out.println(array.toString());
다음과 같아야 한다:
System.out.println(Arrays.toString(array));
@Patrik M과 매우 동의하지만 Arrays.toString의 문제는 출력물에 "["와 "]"를 포함한다는 것이다.그래서 이렇게 밖으로 빼내기 위해 간단히 regex를 사용할 것이다.
String strOfInts = Arrays.toString(intArray).replaceAll("\\[|\\]|,|\\s", "");
이제 다시 구문 분석할 수 있는 문자열이 있다.java.lang.Number
예를 들어,
long veryLongNumber = Long.parseLong(intStr);
아니면 자바 8 스트림을 사용할 수도 있고, 만약 당신이 regex를 싫어한다면,
String strOfInts = Arrays
.stream(intArray)
.mapToObj(String::valueOf)
.reduce((a, b) -> a.concat(",").concat(b))
.get();
String res = Arrays.toString(array);
System.out.println(res);
출력:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
배열의 toString 메서드는 메모리 주소만 출력하며, 이 주소는 당신이 받는 것이다.당신은 배열을 반복해서 각 항목을 스스로 출력해야 한다.
for(int i : array) {
System.println(i);
}
여기서 설명하는 유틸리티를 사용하면 어레이에 대해 얻을 수 있는 문자열 표현을 보다 효과적으로 제어할 수 있다.
String[] s = { "hello", "world" };
RichIterable<String> r = RichIterable.from(s);
r.mkString(); // gives "hello, world"
r.mkString(" | "); // gives "hello | world"
r.mkString("< ", ", ", " >"); // gives "< hello, world >"
이 함수는 "6097321041141011026"과 같은 문자열 형태의 int 배열을 반환한다.
private String IntArrayToString(byte[] array) {
String strRet="";
for(int i : array) {
strRet+=Integer.toString(i);
}
return strRet;
}
여기 문자열 목록에서 단일 문자열로, 다시 문자열 목록으로 돌아가는 예가 있다.
컴파일 중:
$ javac test.java
$ java test
실행 중:
초기 목록: "abc""def""기""jkl""mno" 단일 문자열로: "[abc, def, ghi, jkl, mno]" 재구성된 목록: "abc""def""기""jkl""mno"
소스 코드:
import java.util.*;
public class test {
public static void main(String[] args) {
List<String> listOfStrings= new ArrayList<>();
listOfStrings.add("abc");
listOfStrings.add("def");
listOfStrings.add("ghi");
listOfStrings.add("jkl");
listOfStrings.add("mno");
show("\nInitial list:", listOfStrings);
String singleString = listOfStrings.toString();
show("As single string:", singleString);
List<String> reconstitutedList = Arrays.asList(
singleString.substring(0, singleString.length() - 1)
.substring(1).split("[\\s,]+"));
show("Reconstituted list:", reconstitutedList);
}
public static void show(String title, Object operand) {
System.out.println(title + "\n");
if (operand instanceof String) {
System.out.println(" \"" + operand + "\"");
} else {
for (String string : (List<String>)operand)
System.out.println(" \"" + string + "\"");
}
System.out.println("\n");
}
}
'IT이야기' 카테고리의 다른 글
패커리에 동적 VueJS 구성 요소를 추가하는 방법 (0) | 2022.05.23 |
---|---|
vue 플러그인의 유형을 추가하는 방법? (0) | 2022.05.22 |
두 세트 간의 차이점 확인 (0) | 2022.05.22 |
정적 맵을 초기화하려면 어떻게 해야 하는가? (0) | 2022.05.22 |
C++의 문자열 리터럴(char*)이 상수여야 하는 이유는? (0) | 2022.05.22 |