마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

pattern 접목시키기..

0 추천

public void onButton1Clicked(View v) { //V의 값 구하기
    if (editText2.getText().length() == 0 || editText3.getText().length() == 0) { //숫자가 입력되지 않는다면
        Toast.makeText(getApplicationContext(), "숫자를 입력해 주세요.", Toast.LENGTH_LONG).show();
    } else {

        Double num1 = Double.parseDouble(editText2.getText().toString());
        Double num2 = Double.parseDouble(editText3.getText().toString());

        double i = num1 * m2;
        double r = num2 * m3;
        double V = (i * r) / m3;

        textView4.setText("V = " +V+ V1);
        editText.setText(null); //V의 입력값이 있다면 null로 바꾼다.

    }
}

여기 안에..

이 밑에 코딩을 접목시키고싶은데ㅠ_ㅠ.. 여러가지 시도를 해봤지만 결과가 나오지않아요ㅠㅠ

//입력값에 E가 붙은경우

String pattern1 = "([0-9]{1,}).([0-9]{5,})E";

String aaaa = "1.123456E-3";

Pattern p1 = Pattern.compile(pattern1);

Matcher m1 = p1.matcher(aaaa);

if( m1.find() ){

System.out.println("find pattern1");

String[] params1 = aaaa.split("\\.");

int idx1 = params1[1].indexOf("E");

System.out.println(params1[0] + "." + params1[1].substring(0, 3) + params1[1].substring(idx1, params1[1].length()));

}

//입력값에 E가 없는 경우

String pattern2 = "([0-9]{1,}).([0-9]{5,})";

String bbbb = "1.123456";

Pattern p2 = Pattern.compile(pattern2);

Matcher m2 = p2.matcher(bbbb);

if( m2.find() ){

System.out.println("find pattern2");

String[] params2 = bbbb.split("\\.");

System.out.println(params2[0] + "." + params2[1].substring(0, 3));

}

 

후니02 (820 포인트) 님이 2016년 1월 20일 질문
아래 있는 내용을 하려고하는 이유가 궁금합니다.
소수점자리 6자리를 맞추려구요.

1개의 답변

0 추천
main{

	String result = formatting(String.valueOf(V));
		System.out.println(result);
}


private static String formatting(String aaaa){
		String pattern1 = "([0-9]{1,}).([0-9]{5,})E";
		Pattern p1 = Pattern.compile(pattern1);
		Matcher m1 = p1.matcher(aaaa);
		if( m1.find() ){
		System.out.println("find pattern1");
		String[] params1 = aaaa.split("\\.");
		int idx1 = params1[1].indexOf("E");
		return params1[0] + "." + params1[1].substring(0, 3) + params1[1].substring(idx1, params1[1].length());
		}
		//입력값에 E가 없는 경우
		String pattern2 = "([0-9]{1,}).([0-9]{5,})";
		String bbbb = "1.123456";
		Pattern p2 = Pattern.compile(pattern2);
		Matcher m2 = p2.matcher(bbbb);
		if( m2.find() ){
		System.out.println("find pattern2");
		String[] params2 = bbbb.split("\\.");
		return params2[0] + "." + params2[1].substring(0, 3);
		}
		return null;
	}

 

제가 질문의 뜻일 이해 잘했나 모르겠네요...

익명사용자 님이 2016년 1월 20일 답변
String bbbb = "1.123456"; 이거 없애고..
Matcher m2 = p2.matcher(bbbb); 여기서 bbbb를 aaaa로 교체
String[] params2 = bbbb.split("\\."); 여기도 aaaa로 해야 할듯도.
받는 인자가 1개니까요..
답변 감사합니다..
그런데 위 코드처럼 textView에 드러나게 코딩이 안되서.. 질문을 드린거에요ㅠ_ㅠ
...