Ich versuche, einen Lizenzschlüssel mit zwei Strings kombiniert in einer anderen Zeichenfolge zu generieren.Wie kombinieren zwei Strings mit zufälliger Position Android
String key1 = "X1X2X3X4..Xn"; //this is for the imei key cellphone
String key2 = "Y1Y2Y3Y4M1M2D1D2H1H2m1m2"; //this is a key to mix with the first one
Das Ergebnis der Kombination so sein sollte:
String result = "D1H1X1X2X3Y2Y4X4X5...XnY3Y1D2m2m1H1H2";
ich so meine Strings aufgeteilt alle zwei Räume und speichere ich in ein Array:
String [] key1splited = splitStringEvery(key1, 2);
String [] key2splited = splitStringEvery(key2, 2);
public String[] splitStringEvery(String s, int interval) {
int arrayLength = (int) Math.ceil(((s.length()/(double)interval);
String[] result = new String[arrayLength];
int j = 0;
int lastIndex = result.length - 1;
for (int i = 0; i < lastIndex; i++) {
result[i] = s.substring(j, j + interval);
j += interval;
}
result[lastIndex] = s.substring(j);
return result;
}
Wie kann ich Die Kombination meiner Strings ergibt ein Ergebnis, das wie folgt aussieht:
String result = "D1H1X1X2X3Y2Y4X4X5...XnY3Y1D2m2m1H1H2";
Ich hoffe, jemand könnte mir eine Idee geben, wie man das löst.
Ich versuche, so etwas zu tun, aber es ist sehr schlecht Methode:
static String res = "";
String[] key1splited = splitStringEvery(key1, 2);
String[] key2splited = splitStringEvery(key2, 2);
for (int i = 0; i < key2splited.length; i++) {
if (key2splited[i].equals("D1")) {
res = key2splited[i];
}
if (key2splited[i].equals("H1")) {
res += key2splited[i];
for (int j = 0; j < key1splited.length; j++) {
if (key1splited[j].equals("X1")) {
res += key1splited[j];
}
if (key1splited[j].equals("X2")) {
res += key1splited[j];
}
if (key1splited[j].equals("X3")) {
res += key1splited[j];
}
}
}
}
Und so weiter, aber das ist kein guter Weg, es zu tun, weil die Saiten ändern werden.
Kannst du klar sein, wie du zwei Saiten mischt? – SMA
Warum möchten Sie diese beiden _mix_? Ist es der Fall, dass Sie einen deterministischen Lizenzschlüssel basierend auf Umweltparametern erhalten möchten, der aber nicht sofort erkennbar ist? Wenn ja, möchten Sie, dass der Schlüssel reversibel ist (d. H. Key1 und key2 berechenbar aus dem Ergebnis (vielleicht im Besitz eines dritten Geheimnisses))? Es gibt bessere Methoden für jede der oben genannten als die beiden Strings mischen ... –
Nun versuche ich dies zu tun –