Java 试图更改两个不同数字字符的位置
我试着做一个练习,这是“键入2个数字,成对位置的每个字符将其与第二个数字相同位置的等效字符交换,而处于受损位置的字符将其与第一个数字相同位置的字符交换” 但是我以前没有处理过字符,所以我不确定我做错了什么,这是我到目前为止的代码,它抛出随机的东西,而不是改变的数字。 到目前为止,我有以下代码:Java 试图更改两个不同数字字符的位置,java,android,Java,Android,我试着做一个练习,这是“键入2个数字,成对位置的每个字符将其与第二个数字相同位置的等效字符交换,而处于受损位置的字符将其与第一个数字相同位置的字符交换” 但是我以前没有处理过字符,所以我不确定我做错了什么,这是我到目前为止的代码,它抛出随机的东西,而不是改变的数字。 到目前为止,我有以下代码: public class MainActivity extends AppCompatActivity { EditText edtNum1, edtNum2; TextView txvR
public class MainActivity extends AppCompatActivity {
EditText edtNum1, edtNum2;
TextView txvRes;
Button btnEjecutar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnEjecutar = (Button) findViewById(R.id.btnEjecutar);
btnEjecutar.setOnClickListener(ButtonClickListener);
}
public View.OnClickListener ButtonClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
txvRes = (TextView) findViewById(R.id.txvRes);
int a, b;
char[] n1, n2;
edtNum1 = (EditText) findViewById(R.id.edtNum1);
edtNum2 = (EditText) findViewById(R.id.edtNum2);
a = Integer.parseInt(edtNum1.getText().toString());
b = Integer.parseInt(edtNum2.getText().toString());
char [] chars1 = String.valueOf(a).toCharArray();
char [] chars2 = String.valueOf(b).toCharArray();
if(chars1.length > chars2.length){
for(int i = 0;i < chars2.length;i++){
if(i % 2 != 0){
chars2[i] = chars1[i];
}else if(i % 2 == 0){
chars1[i] = chars2[i];
}
}
}else if(chars1.length < chars2.length){
for(int i = 0;i < chars1.length;i++){
if(i % 2 != 0){
chars2[i] = chars1[i];
}else if(i % 2 == 0){
chars1[i] = chars2[i];
}
}
}
n1 = chars1;
n2 = chars2;
txvRes.setText("the first number is: "+n1+" and the second number is: "+n2);
}
};}
public类MainActivity扩展了AppCompatActivity{
编辑文本edtNum1,edtNum2;
TextView txvRes;
按钮btnEjecutar;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnEjecutar=(按钮)findViewById(R.id.btnEjecutar);
btnEjecutar.setOnClickListener(按钮ClickListener);
}
public View.OnClickListener按钮clicklistener=new View.OnClickListener(){
@凌驾
公共void onClick(视图v){
txvRes=(TextView)findViewById(R.id.txvRes);
INTA,b;
字符[]n1,n2;
edtNum1=(EditText)findViewById(R.id.edtNum1);
edtNum2=(EditText)findViewById(R.id.edtNum2);
a=Integer.parseInt(edtNum1.getText().toString());
b=Integer.parseInt(edtNum2.getText().toString());
char[]chars1=String.valueOf(a).toCharArray();
char[]chars2=String.valueOf(b).toCharArray();
if(chars1.length>chars2.length){
for(int i=0;i
好的,我找到了修复它的方法,首先我在setText中使用了char数组,这导致输出了一个奇怪的字符串
第二,我基本上是错误地更改了函数中的值,因为当我更改第一个值时,我替换了我以前使用的第一个值,这意味着两个数字将以相同的字符结束,而不是在某些位置交换
以下是固定代码:
public class MainActivity extends AppCompatActivity {
EditText edtNum1, edtNum2;
TextView txvRes;
Button btnEjecutar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnEjecutar = (Button) findViewById(R.id.btnEjecutar);
btnEjecutar.setOnClickListener(ButtonClickListener);
}
public View.OnClickListener ButtonClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
txvRes = (TextView) findViewById(R.id.txvRes);
int a, b;
char[] chars3, chars4;
edtNum1 = (EditText) findViewById(R.id.edtNum1);
edtNum2 = (EditText) findViewById(R.id.edtNum2);
a = Integer.parseInt(edtNum1.getText().toString());
b = Integer.parseInt(edtNum2.getText().toString());
char [] chars1 = String.valueOf(a).toCharArray();
char [] chars2 = String.valueOf(b).toCharArray();
chars3 = chars1;
chars4 = chars2;
if(chars1.length > chars2.length){
for(int i = 0;i < chars2.length;i++){
if(i % 2 != 0){
chars2[i] = chars3[i];
chars1[i] = chars4[i];
}else if(i % 2 == 0){
chars1[i] = chars4[i];
chars1[i] = chars3[i];
}
}
}else if(chars1.length < chars2.length){
for(int i = 0;i < chars1.length;i++){
if(i % 2 != 0){
chars2[i] = chars3[i];
chars1[i] = chars4[i];
}else if(i % 2 == 0){
chars1[i] = chars4[i];
chars2[i] = chars3[i];
}
}
}
String c = new String(chars1);
String d = new String(chars2);
txvRes.setText("El primer Numero es: "+c+" y el segundo Numero es: "+d);
}
};
}
public类MainActivity扩展了AppCompatActivity{
编辑文本edtNum1,edtNum2;
TextView txvRes;
按钮btnEjecutar;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnEjecutar=(按钮)findViewById(R.id.btnEjecutar);
btnEjecutar.setOnClickListener(按钮ClickListener);
}
public View.OnClickListener按钮clicklistener=new View.OnClickListener(){
@凌驾
公共void onClick(视图v){
txvRes=(TextView)findViewById(R.id.txvRes);
INTA,b;
char[]chars3,chars4;
edtNum1=(EditText)findViewById(R.id.edtNum1);
edtNum2=(EditText)findViewById(R.id.edtNum2);
a=Integer.parseInt(edtNum1.getText().toString());
b=Integer.parseInt(edtNum2.getText().toString());
char[]chars1=String.valueOf(a).toCharArray();
char[]chars2=String.valueOf(b).toCharArray();
chars3=chars1;
chars4=chars2;
if(chars1.length>chars2.length){
for(int i=0;i
好的,我找到了修复它的方法,首先我在setText中使用了char数组,这导致输出了一个奇怪的字符串
第二,我基本上是错误地更改了函数中的值,因为当我更改第一个值时,我替换了我以前使用的第一个值,这意味着两个数字将以相同的字符结束,而不是在某些位置交换
以下是固定代码:
public class MainActivity extends AppCompatActivity {
EditText edtNum1, edtNum2;
TextView txvRes;
Button btnEjecutar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnEjecutar = (Button) findViewById(R.id.btnEjecutar);
btnEjecutar.setOnClickListener(ButtonClickListener);
}
public View.OnClickListener ButtonClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
txvRes = (TextView) findViewById(R.id.txvRes);
int a, b;
char[] chars3, chars4;
edtNum1 = (EditText) findViewById(R.id.edtNum1);
edtNum2 = (EditText) findViewById(R.id.edtNum2);
a = Integer.parseInt(edtNum1.getText().toString());
b = Integer.parseInt(edtNum2.getText().toString());
char [] chars1 = String.valueOf(a).toCharArray();
char [] chars2 = String.valueOf(b).toCharArray();
chars3 = chars1;
chars4 = chars2;
if(chars1.length > chars2.length){
for(int i = 0;i < chars2.length;i++){
if(i % 2 != 0){
chars2[i] = chars3[i];
chars1[i] = chars4[i];
}else if(i % 2 == 0){
chars1[i] = chars4[i];
chars1[i] = chars3[i];
}
}
}else if(chars1.length < chars2.length){
for(int i = 0;i < chars1.length;i++){
if(i % 2 != 0){
chars2[i] = chars3[i];
chars1[i] = chars4[i];
}else if(i % 2 == 0){
chars1[i] = chars4[i];
chars2[i] = chars3[i];
}
}
}
String c = new String(chars1);
String d = new String(chars2);
txvRes.setText("El primer Numero es: "+c+" y el segundo Numero es: "+d);
}
};
}
public类MainActivity扩展了AppCompatActivity{
编辑文本edtNum1,edtNum2;
TextView txvRes;
按钮btnEjecutar;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnEjecutar=(按钮)findViewById(R.id.btnEjecutar);
btnEjecutar.setOnClickListener(按钮ClickListener);
}
public View.OnClickListener按钮clicklistener=新视图。