将一个整数数组转换为一个字符串

问题描述:

我是一个初学者,正在为类编写一个凯撒密码分配的程序。目前,我试图创建一个函数,它将完成与第一个函数相反的功能,接受一个整型数组并返回一个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 –

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

如果我正确理解你的第一个功能的代码,那么你想要的东西,转换成[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

这里有一段代码可以帮助你。

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

添加到字符串的任何东西都会变成字符串。这是另一个例子。

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

这将变成一串“123”。我想你会得到这张照片。现在只需要遍历该数组并将其合并为一个字符串即可。

奖金和正确的方式来做到这一点......使用StringBuilder类。搜索它是什么以及如何使用它。 ;)

编辑:啊。马丁斯打败了我。 :)使用Java 8流

方法:

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"