Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 试图更改两个不同数字字符的位置_Java_Android - Fatal编程技术网

Java 试图更改两个不同数字字符的位置

Java 试图更改两个不同数字字符的位置,java,android,Java,Android,我试着做一个练习,这是“键入2个数字,成对位置的每个字符将其与第二个数字相同位置的等效字符交换,而处于受损位置的字符将其与第一个数字相同位置的字符交换” 但是我以前没有处理过字符,所以我不确定我做错了什么,这是我到目前为止的代码,它抛出随机的东西,而不是改变的数字。 到目前为止,我有以下代码: public class MainActivity extends AppCompatActivity { EditText edtNum1, edtNum2; TextView txvR

我试着做一个练习,这是“键入2个数字,成对位置的每个字符将其与第二个数字相同位置的等效字符交换,而处于受损位置的字符将其与第一个数字相同位置的字符交换”

但是我以前没有处理过字符,所以我不确定我做错了什么,这是我到目前为止的代码,它抛出随机的东西,而不是改变的数字。 到目前为止,我有以下代码:

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=新视图。