如何解决java.lang问题。”;“非法国家例外”&引用;StringIndexOutOfBound“&引用;InvocationTargetException“;
有人能帮我写这个应用程序,但它不工作,我没有找到解决方案 第一个错误:由java.lang.IllegalStateException引起:无法执行活动的方法 第二个错误:由java.lang.StringIndexOutOfBoundException引起 第三个错误:由java.lang.reflect.InvocationTargetException引起如何解决java.lang问题。”;“非法国家例外”&引用;StringIndexOutOfBound“&引用;InvocationTargetException“;,java,android,Java,Android,有人能帮我写这个应用程序,但它不工作,我没有找到解决方案 第一个错误:由java.lang.IllegalStateException引起:无法执行活动的方法 第二个错误:由java.lang.StringIndexOutOfBoundException引起 第三个错误:由java.lang.reflect.InvocationTargetException引起 package com.enkripsms; import com.dbutil.dbhelper; import android.
package com.enkripsms;
import com.dbutil.dbhelper;
import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class tulisPesan extends Activity {
/**
* @see android.app.Activity#onCreate(Bundle)
*/
EditText pesan;
EditText kunci;
private SQLiteDatabase db = null;
private dbhelper data = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO Put your code here
setContentView(R.layout.tulispesan);
data = new dbhelper(this);
db = data.getWritableDatabase();
data.createTable(db);
}
public void sandikan ( View s ) {
kunci = (EditText)findViewById(R.id.kunci);
pesan = (EditText)findViewById(R.id.pesan);
String kuncinya = kunci.getText().toString();
String plain = pesan.getText().toString();
String chiper = "";
if (kuncinya.isEmpty()) { //(kunci == null)
Toast.makeText(this, "Maaf, kunci harus diisi", Toast.LENGTH_LONG).show();
}else{
String acak = "";
double acakN;
for (int a = 0; a<kuncinya.length(); a++) {
acakN = Math.random() * 25 + 65;
acak = acak + (char) acakN;
}
kunci.setText(acak);
}
if (kuncinya.length() != plain.length()) {
for (int a = 0; a<plain.length(); a++) {
String tambahk = "";
tambahk = tambahk + kuncinya.substring(0, 1);
kuncinya = tambahk;
}
kunci.setText(kuncinya);
}
for (int a = 0; a<plain.length(); a++) {
String plainBin = "0" + Integer.toBinaryString((int)plain.charAt(a));
if (plainBin.length() < 8)
plainBin = "0" + plainBin;
String keyBin = "0" + Integer.toBinaryString((int)kuncinya.charAt(a));
for (int b = 0; b<8; b++) {
chiper = chiper + Integer.toString((Integer.parseInt(plainBin.substring(b, b+1))) ^ Integer.parseInt(keyBin.substring(b, b+1)));
}
}
Intent hasilPesan = new Intent();
hasilPesan.setClass(this, hasilPesan.class);
hasilPesan.putExtra("chiper", chiper);
startActivity(hasilPesan);
}
public void inputData () {
}
public void kembali ( View k) {
Intent kembali = new Intent();
kembali.setClass(this, MainActivity.class);
startActivity(kembali);
}
}
有人请帮帮我,谢谢你。在你的for循环中:
chiper = chiper + Integer.toString((Integer.parseInt(plainBin.substring(b, b+1))) ^ Integer.parseInt(keyBin.substring(b, b+1)));
超过字符串的长度
看这一行,检查你想循环8次
for (int b = 0; b<8; b++) {
for(int b=0;b
for (int b = 0; b<8; b++) {