IT이야기

Java에서 toString 메서드를 사용하여 int 어레이를 문자열로 변환하는 방법

cyworld 2022. 5. 22. 11:27
반응형

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();

java.util을 사용할 수 있다.배열:

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");
    }
}

참조URL: https://stackoverflow.com/questions/10904911/how-to-convert-an-int-array-to-string-with-tostring-method-in-java

반응형