Я разрабатываю приложение нумерологии .. Там, где есть три текста редактирования, чтобы собирать имя пользователя, имя и фамилию, и среди этих значений принимается только первая цифра имени и все эти значения добавляются с помощью String builder .. и отображается результат вычисления. Приложение работает нормально, если пользователь вводит все имя, имя и фамилию, и если для некоторых людей не будет никакого среднего имени, поэтому, когда они делают расчет, например что приложение врезаться .. Просьба помочь ..Я я giivng код ниже ..Java Substring return 0
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void gReport(View V)
{
EditText et1 = (EditText) findViewById (R.id.editText1);
EditText et2 = (EditText) findViewById (R.id.editText2);
EditText et3 = (EditText) findViewById (R.id.editText3);
TextView tv1 = (TextView) findViewById (R.id.textView1);
long sum2 = 0;
String firstName = et1.getText().toString();
String middleName = et2.getText().toString();
String lastName = et3.getText().toString();
String aChar1 = firstName.substring(0,1);
String aChar2 = middleName.substring(0,1);
String aChar3 = lastName.substring(0,1);
StringBuilder sb= new StringBuilder();
sb.append(aChar1);
sb.append(aChar2);
sb.append(aChar3);
String aChar = sb.toString();
sum2 = getSum(String.valueOf(aChar));
tv1.setText(String.valueOf(aChar));
Intent in = new Intent(this, FirstActivity.class);
in.putExtra("name2",sum2 + "");
startActivity(in);
}
private long getSum(String text) {
// TODO Auto-generated method stub
long sum2 = 0;
char[] name2 = new char[text.length()];
name2 = text.toCharArray();
for(int i=0; i<text.length(); i++)
{
sum2 += value2(name2[i]);
}
while (sum2>9)
{
sum2 = findDigitSum2(sum2);
}
return sum2;
}
private long findDigitSum2(long n) {
// TODO Auto-generated method stub
int sum2=0;
while (n != 0)
{
sum2 += n % 10;
n = n/10;
}
return sum2;
}
private long value2(char a) {
// TODO Auto-generated method stub
switch(a)
{
case 'A':return 1;
case 'B':return 2;
case 'C':return 3;
case 'D':return 4;
case 'E':return 5;
case 'F':return 6;
case 'G':return 7;
case 'H':return 8;
case 'I':return 9;
case 'J':return 1;
case 'K':return 2;
case 'L':return 3;
case 'M':return 4;
case 'N':return 5;
case 'O':return 6;
case 'P':return 7;
case 'Q':return 8;
case 'R':return 9;
case 'S':return 1;
case 'T':return 2;
case 'U':return 3;
case 'V':return 4;
case 'W':return 5;
case 'X':return 6;
case 'Y':return 7;
case 'Z':return 8;
default:return 0;
}
}
FirstA ctivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.firstactivity_xm);
TextView tv2 = (TextView) findViewById (R.id.textView2);
tv2.setText(getIntent().getStringExtra("name2"));
}
}
Трассировка стека поможет. – Harry
* «Я разрабатываю нумерологическое приложение ...» * - Ну, есть ваша ошибка :-) –