Android

[Android] 문자열인지 아닌지 확인하는 코드

eyoo 2022. 7. 12. 10:44

데이터의 타입이 문자열인지 아닌지 알아볼수 있는 코드다.

 

    public static boolean isNumeric(String strNum) {
        if (strNum == null) {
            return false;
        }
        try {
            double d = Double.parseDouble(strNum);
        } catch (NumberFormatException nfe) {
            return false;
        }
        return true;
    }

 

 

더보기

 

활용 예시:

# 알람 기능이 있는 앱이다.

 

public class MainActivity extends AppCompatActivity {

    ImageView imgAlarm;
    TextView txtTimer;
    EditText editTime;
    Button btnCancel;
    Button btnStart;
    CountDownTimer timer;
    long millisInFuture = 60000;
    long countDownInterval = 1000;
    MediaPlayer alarmSound;

    boolean isWorking = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imgAlarm = findViewById(R.id.imgAlarm);
        txtTimer = findViewById(R.id.txtTimer);
        editTime = findViewById(R.id.editTime);
        btnCancel = findViewById(R.id.btnCancel);
        btnStart = findViewById(R.id.btnStart);
        alarmSound = MediaPlayer.create(MainActivity.this,R.raw.alarm_sound);

        btnStart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // 에디트텍스트에서 초정보를 가져온다.
                String timeStr = editTime.getText().toString().trim();

                if (timeStr.isEmpty()|| !isNumeric(timeStr) ) {
                    return;
                }

                millisInFuture = Long.valueOf(timeStr).longValue() * 1000;

                timer = new CountDownTimer(millisInFuture, countDownInterval) {
                    @Override
                    public void onTick(long l) {
                        long remain = l / 1000;
                        txtTimer.setText(remain + "초");
                        isWorking = true;
                    }

                    @Override
                    public void onFinish() {
                        txtTimer.setText("타이머가 종료되었습니다.");
                        YoYo.with(Techniques.Shake).duration(400).repeat(5).playOn(imgAlarm);
                        alarmSound.start();
                        isWorking = false;
                    }

                };
                if (isWorking == false) {
                    timer.start();
                }
            }
        });

        btnCancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                timer.cancel();
                txtTimer.setText("타이머가 취소되었습니다.");
                isWorking = false;
            }
        });




    }
    public static boolean isNumeric(String strNum) {
        if (strNum == null) {
            return false;
        }
        try {
            double d = Double.parseDouble(strNum);
        } catch (NumberFormatException nfe) {
            return false;
        }
        return true;
    }
}