Java 将整数数组的部分转换为整数?
我试图把一条信息,比如说以2212028的形式转换成一个数组,比如说[22,12,20,28],然后转换成单个整数,比如说22,12,20,28。我有应该可以工作的代码,但由于某些原因它不能工作Java 将整数数组的部分转换为整数?,java,arrays,int,Java,Arrays,Int,我试图把一条信息,比如说以2212028的形式转换成一个数组,比如说[22,12,20,28],然后转换成单个整数,比如说22,12,20,28。我有应该可以工作的代码,但由于某些原因它不能工作 public class Decrypt { private String myMessage; private String e = "271828182845904523536028747135266249775724709369995957496696762772407663035
public class Decrypt {
private String myMessage;
private String e = "2718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921817413596629043572900334295260595630738132328627943490763233829880753195251019011573834187930702154089149934884167509244761460668082264800168477411853742345442437107539077744992069551702761838606261331384583000752044933826560297606737113200709328709127443747047230696977209310141692836819025515108657463772111252389784425056953696770785449969967946864454905987931636889230098793127736178215424999229576351482208269895193668033182528869398496465105820939239829488793320362509443117301238197068416140397019837679320683282376464804295311802328782509819455815301756717361332069811250996181881593041690351598888519345807273866738589422879228499892086805825749279610484198444363463244968487560233624827041978623209002160990235304369941849146314093431738143640546253152096183690888707016768396424378140592714563549061303107208510383750510115747704171898610687396965521267154688957035035402123407849819334321068170121005627880235193033224745015853904730419957777093503660416997329725088687696640355570716226844716256079882651787134195124665201030592123667719432527867539855894489697096409754591856956380236370162112047742722836489613422516445078182442352948636372141740238893441247963574370263755294448337";
private int character;
private int myInteger;
private int eInteger;
private String decryptedMessage = "";
public Decrypt(String myMessage){
this.myMessage = myMessage;
}
public String Decryption(){
String[] splitMessage = myMessage.split(" ");
int[] numbers = new int[splitMessage.length];
String[] eMessage = e.split("");
int[] eNumbers = new int[eMessage.length];
for (int i=0; i<myMessage.length(); i++){
eInteger = eNumbers[i];
myInteger = numbers[i];
System.out.println(eInteger + " " + myInteger);
character = myInteger - eInteger;
String stringCharacter = Integer.toString(character);
decryptedMessage = decryptedMessage + " " + stringCharacter;
System.out.println(i);
}
return decryptedMessage;
}
public String toString(){
return "Message: " + Decryption();
}
}
我认为问题在于:
for (int i=0; i<myMessage.length(); i++){
eInteger = eNumbers[i];
myInteger = numbers[i];
System.out.println(eInteger + " " + myInteger);
character = myInteger - eInteger;
String stringCharacter = Integer.toString(character);
decryptedMessage = decryptedMessage + " " + stringCharacter;
System.out.println(i);
}
但我不知道这有什么问题。我不需要任何帮助来做这件事,我只想知道为什么它没有返回我想要的。它只是返回0。对于一个
int[] numbers = new int[splitMessage.length];
不会自动将所有字符串转换为整数来分配数组。您必须显式执行此操作。您尚未编写任何将单个字符串转换为整数的代码。这通常是通过以下方式完成的:
for (int i = 0; i < numbers.length; i++) {
numbers[i] = Integer.parseInt(splitMessage[i]);
}
您没有将任何内容放入数字或枚举中,因此它们是0。有人会认为应该有什么东西在里面,但你没有说什么,所以我不知道如何修复它。但我把我放进去了?它应该将枚举数[0]转换为int,然后将枚举数[1]转换为int,依此类推。但我把I放在它们里面了吗?你没有在里面放任何东西。它应该将枚举[0]转换为int,然后将枚举[1]转换为int,依此类推。int[]中的数组元素已为int。。。您缺少一些基本步骤,我们真的无法帮助您,因为我们也不知道您的程序应该如何工作。如果这是家庭作业,你应该复习作业的课文,如果不清楚,问老师。我该如何明确地做到这一点?
int[] numbers = Arrays.stream(splitMessage)
.mapToInt(Integer::parseInt).toArray();