簡體   English   中英

將 int 數組轉換為 String 並返回 (getArrayString)

[英]Converting int array to String and returning (getArrayString)

我必須創建一個 getArrayString(int[] array, char separator) 方法,該方法返回一個字符串,其中每個數組條目(最后一個除外)后跟指定的分隔符。

我知道 arrays 方法的構造函數,但是在這一個中,我首先必須對返回數組的公式進行罰款,除了最后一個之外,第二個將我的 int[] 數組轉換為字符串並使用分隔符返回它。

public static getArrayString(int[] array, char separator) {
    if(array == null ||array.length == 0) {
        return null;
    }
    int size =0;
    for(int i =0; i < array.length; i++) {

        size++;
    }
    int[] newArray2 = new int[size];
    for(int i= 0, position = 0; i < array.length; i++) {
        newArray2[position]=i;
        position++;
        System.out.print(i+',');
    }
    //  String StArray = Arrays.toString(newArray2);
    //  return StArray + separator;
    //  newArray2 = convertStringArrayToString(StArray,separator);
    //  return StArray;
    //  
    //return Arrays.toString(newArray2)+ separator;
}
// private static String convertStringArrayToString(String[] newArray,char separator) {
//   StringBuilder sb = new StringBuilder();
//   for(String StArray : newArray);
//   return sb.substring(0,sb.length()-1);
// }

評論是轉換為字符串並返回它的想法!

將 int[] 連接到字符串

編輯:我剛剛發現你有一個 int[] 而不是 String[]。 我可能會使用 Streams 方法:

String result = Arrays.stream(array)
    .mapToObj(String::valueOf)
    .collect(Collectors.joining(separator));

如果你真的想使用 for 循環,你應該使用StringJoiner

public static getArrayString(int[] array, char separator) {
    if(array == null || array.length == 0) return "";

    String separatorString = String.valueOf(separator);
    StringJoiner sj = new StringJoiner(separatorString);

    for(int element : array) {
        sj.add(String.valueOf(element));
    }

    return sj.toString();
}

將 String[] 連接到字符串

你的問題的措辭讓我覺得你正在為 class 研究這個,但如果你不是,只需使用內置連接function:

// join takes Iterable<? extends CharSequence> or vararg
String.join(separator, myArray)
String.join(separator, myList)
String.join(separator, charSeq1, charSeq2, ..., charSeqN)

如果您需要前綴/后綴,您可以使用StringJoiner

StringJoiner sj = new StringJoiner(separator, prefix, suffix);
String result = sj.add(s1).add(s2).add(s3).toString();

...這也是Stream Collectors.joining 的基礎:

String result = Arrays.stream(array)
    .collect(Collectors.joining(separator));

String result = Arrays.stream(array)
    .collect(Collectors.joining(separator, prefix, suffix));
public static String getArrayString(int[] array, char separator) {
    if(array == null || array.length == 0) {
        return null;
    }

    String str = "";
    for(int i = 0; i < array.length-1; i++) {
        str += "" + array[i]+ separator;
    }

    // add the last one
    str += array[array.length - 1];
    return str;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM