[英]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[] 而不是 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();
}
你的問題的措辭讓我覺得你正在為 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.