我是初学者,正在尝试为课程编写Caesar密码分配程序。目前我很难尝试创建一个与第一个函数相反的函数,接受一个整数数组并返回一个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 :(得分:1)
meteorhacks:picker
答案 1 :(得分: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();
}
javac 或 JVM 实际上可能会自动将第一个代码段转换为第二个代码段。
答案 2 :(得分:0)
以下是一段代码可以帮助您。
public String changeIntToString(int aNumber){
String theString = "";
theString += aNumber;
return theString;
}
添加到String的任何内容都将变为String。所以这是另一个例子。
String lotOfInt = "" + 1 + 2 + 3;
这将变成一串&#34; 123&#34;。我想你明白了。现在你只需要循环遍历该数组并将其组合成一个字符串。
奖金和正确的方法...使用StringBuilder类。搜索它是什么以及如何使用它。 ;)
编辑:啊。 MartinS打败了我。 :)答案 3 :(得分:0)
使用Java 8 Streams的方法:
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"