2016-02-20 137 views
0

我是一個初學者,正在爲類編寫一個凱撒密碼分配的程序。目前,我試圖創建一個函數,它將完成與第一個函數相反的功能,接受一個整型數組並返回一個String。我完全失去了在這一點上如何這樣做,真的可以真的使用一些幫助。將一個整數數組轉換爲一個字符串

public static int[] string(String str) { 
    int [] arr = new int [str.length()]; 

    for (int i = 0; i < str.length(); i++) { 
     str.toUpperCase(); 
     arr[i] = str.charAt(i)-65; 
     // System.out.println(arr[i]);--> check to see if stringTo was working 
    } 
    return arr; 
} 



public static String symbol(int[] symbols) { 
    String message = new String(); 

    char[] letters = new char[symbols.length]; 



    for (int i = 0; i < symbols.length; i++) { 

     symbols[i] = letters[i]; 

     message.toUpperCase(); 
     message = message.toString(); 


     System.out.print(message); 

    }  

    return message; 
} 
+0

String類有構造'新的字符串(字符[]值)'。只要使用它。 –

+2

你得到的錯誤是什麼? –

+1

參考這個http://stackoverflow.com/questions/10904911/how-to-convert-an-int-array-to-string-with-tostring-method-in-java –

回答

1
int[] a = {1,2,3,4,5,6}; 

String str = ""; 

for(int i=0;i<a.length;i++) 
{ 
    str = str + Integer.toString(a[i]); 
} 
System.out.println(str); 
+0

快速跟進問題:如果在成爲字符串之前需要將int arr更改爲字符,該怎麼辦?我認爲那是我遇到的最大麻煩。 – Yaz

+0

你不需要'Integer.toString()'。 'str = str + arr [i]'會做。 – 2016-03-25 16:29:28

0

如果我正確理解你的第一個功能的代碼,那麼你想要的東西,轉換成[1,2,3,4,5]"12345"

然後你的函數看起來是這樣的:

public static String arrayToString(int[] array) { 
    String result = ""; 
    for(int i : array) { 
     result += i; 
    } 
    return result; 
} 

但這可以有很長的陣列可怕的性能,因爲每個+=創建一個新的String所以實際上這會更好:

public static String arrayToString(int[] array) { 
    StringBuilder builder = new StringBuilder(); 
    for(int i : array) { 
     builder.append(i); 
    } 
    return builder.toString(); 
} 

javacJVM實際上可能會將第一個代碼片段自動轉換爲第二個代碼片段。

+0

是的,編譯器可能。這是一個簡單的附加,我認爲java 5或7 ..不記得哪個可能會嘗試將其轉換爲一個字符串,它將具有與使用StringBuilder相同的影響。 – pompanoSlayer

0

這裏有一段代碼可以幫助你。

public String changeIntToString(int aNumber){ 
    String theString = ""; 
    theString += aNumber; 
    return theString; 
} 

添加到字符串的任何東西都會變成字符串。這是另一個例子。

String lotOfInt = "" + 1 + 2 + 3; 

這將變成一串「123」。我想你會得到這張照片。現在只需要遍歷該數組並將其合併爲一個字符串即可。

獎金和正確的方式來做到這一點......使用StringBuilder類。搜索它是什麼以及如何使用它。 ;)

編輯:啊。馬丁斯打敗了我。 :)使用Java 8流

0

方法:

int[] intArray = new int[] {1, 2, 3, 4}; 

String result = IntStream.of(intArray) 
          .mapToObj(String::valueOf) 
          .collect(Collectors.joining(",")); 
System.out.println(result); // "1,2,3,4" 
相關問題