所以我一直試圖解決這個問題幾個小時,但似乎無法找到一個可行的答案。
我有一個存盤航班資訊的物件陣列,我不得不洗掉包含 Valstybe:“Maldyvai”的航班,所以我制作了一個沒有它們的新物件陣列,但是當我嘗試列印它時,我得到了一個記憶體位置。
如何將物件陣列轉換為字串陣列?即使我的 java 類中有一個 tostring 方法
package com.company;
import java.util.*;
import com.company.Isvestine.OroUostasKeleivis;
public class Main {
public static void main(String[] args) {
// write your code here
OroUostasKeleivis Keleiviai1 = new OroUostasKeleivis("Skrydis","Washington","JAV","Tomas","tomaitis","Washington",5465);
OroUostasKeleivis Keleiviai2 = new OroUostasKeleivis("Skrydis","Washington","Maldyvai","Tomas","tomaitis","Maldyvai",5466);
OroUostasKeleivis Keleiviai3 = new OroUostasKeleivis("Skrydis","Washington","JAV","Tomas","tomaitis","Washington",5467);
OroUostasKeleivis Keleiviai4 = new OroUostasKeleivis("Skrydis","Washington","Maldyvai","Tomas","tomaitis","Maldyvai",5468);
OroUostasKeleivis Keleiviai5 = new OroUostasKeleivis("Skrydis","Washington","JAV","Tomas","tomaitis","Washington",5469);
OroUostasKeleivis Keleiviai6 = new OroUostasKeleivis("Skrydis","Washington","Maldyvai","Tomas","tomaitis","Maldyvai",5470);
OroUostasKeleivis Keleiviai7 = new OroUostasKeleivis("Skrydis","Washington","JAV","Tomas","tomaitis","Washington",5475);
OroUostasKeleivis Keleiviai8 = new OroUostasKeleivis("Skrydis","Washington","Maldyvai","Tomas","tomaitis","Maldyvai",5476);
OroUostasKeleivis Keleiviai9 = new OroUostasKeleivis("Skrydis","Washington","JAV","Tomas","tomaitis","Washington",5477);
OroUostasKeleivis Keleiviai10 = new OroUostasKeleivis("Skrydis","Washington","JAV","Tomas","tomaitis","Washington",5488);
OroUostasKeleivis[] keleiviai = new OroUostasKeleivis[10];
keleiviai[0] = Keleiviai1;
keleiviai[1] = Keleiviai2;
keleiviai[2] = Keleiviai3;
keleiviai[3] = Keleiviai4;
keleiviai[4] = Keleiviai5;
keleiviai[5] = Keleiviai6;
keleiviai[6] = Keleiviai7;
keleiviai[7] = Keleiviai8;
keleiviai[8] = Keleiviai9;
keleiviai[9] = Keleiviai10;
for (OroUostasKeleivis keleiveliai:keleiviai) {
System.out.println(keleiveliai);
}
System.out.println("test debug");
OroUostasKeleivis[] keleiviaibemaldyvu = new OroUostasKeleivis[10];
for (int i = 0; i < 10; i ) {
}
System.out.println(IsstrintiMaldyvus(keleiviai));
String convertedStringObject = IsstrintiMaldyvus(keleiviai) .toString();
System.out.println(convertedStringObject );
}
static Object[] IsstrintiMaldyvus(OroUostasKeleivis[] keleiviai){
OroUostasKeleivis[] keleiviaiBeMaldyvu = new OroUostasKeleivis[10];
int pozicija = 0;
for ( OroUostasKeleivis keleiveliai: keleiviai) {
if (keleiveliai.getValstybe() != "Maldyvai"){
keleiviaiBeMaldyvu[pozicija] = keleiveliai;
pozicija ;
}
}
return keleiviaiBeMaldyvu;
}
}
uj5u.com熱心網友回復:
但是當我嘗試列印它時,我得到了一個記憶體位置
是的,您不會得到預期的結果,尤其是toString()使用任何陣列呼叫。有關更多詳細資訊,請參閱檔案java.lang.Object.toString()。
那么我們該如何解決問題呢?
首先,像這樣覆寫toString()方法OroUostasKeleivis:
class OroUostasKeleivis {
@Override
public String toString() {
// your implementation here
return null; // TODO: change here
}
}
其次,你可以做任何一種方式:
- 如果您只想列印出來,您可以
System.out.println(keleiveliai)像您一樣在 for-each 回圈中執行此操作。 - 如果您有興趣轉換
OroUostasKeleivis[]為String[],您可以:
// this requires Java 8 or later
String[] converted = Arrays.asList(keleiviai)
.stream()
.map(OroUostasKeleivis::toString)
.toArray(String[]::new);
// then use `converted`
uj5u.com熱心網友回復:
利用 System.out.println(Arrays.toString(IsstrintiMaldyvus(keleiviai)))
https://www.geeksforgeeks.org/arrays-tostring-in-java-with-examples/
它將列印陣列內容,類似于ArrayList如果它具有相同的內容將如何列印。
把它想象成:[ obj1.toString(), obj2.toString(), ... ]
uj5u.com熱心網友回復:
使用java.util.Arrays#stream(T[])過濾器并將物件陣列轉換為字串陣列,并使用java.util.Arrays#toString(java.lang.Object[])將陣列轉換為可讀字串。
final String[] oroUostasKeleivis = Arrays.stream(keleiviai)
.filter(
k -> k.getValStybe() != "Maldyvai"
)
// or other convert code
.map(OroUostasKeleivis::toString)
.toArray(String[]::new);
System.out.println(Arrays.toString(oroUostasKeleivis));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/411940.html
標籤:
