Java da Stringi Integera Çevirmek

Posted by dogukanhan on August 31, 2017 · 1 min read

String değişkeninin içerisindeki sayıyı bir integer değişkenine çevirmek için kullanılabilecek bir algoritma.
Dikkat edilmesi gereken noktalar

Null veya Boş bir String olabilir
String içerisinde boşluklar olabilir

  • veya – işaretleri olabilir
    Minimum ve  Maksimum değeri aşmaması gerekiyor
public int atoi(String str) {
	if (str == null || str.length() < 1)
		return 0;
 
	// trim white spaces
	str = str.trim();
 
	char flag = '+';
 
	// check negative or positive
	int i = 0;
	if (str.charAt(0) == '-') {
		flag = '-';
		i++;
	} else if (str.charAt(0) == '+') {
		i++;
	}
	// use double to store result
	double result = 0;
 
	// calculate value
	while (str.length() > i && str.charAt(i) >= '0' && str.charAt(i) <= '9') {
		result = result * 10 + (str.charAt(i) - '0');
		i++;
	}
 
	if (flag == '-')
		result = -result;
 
	// handle max and min
	if (result > Integer.MAX_VALUE)
		return Integer.MAX_VALUE;
 
	if (result < Integer.MIN_VALUE)
		return Integer.MIN_VALUE;
 
	return (int) result;
}

Kaynak: https://www.programcreek.com/2012/12/leetcode-string-to-integer-atoi/