Sistem dizaynı ilə bağlı müsahibə sualları o qədər açıq ola bilər ki, düzgün hazırlaşmağı bilmək çox çətindir. İndi satın aldıqdan sonra Amazon, Microsoft və Adobe-nin dizayn dövrlərini sındıra bilirəm Bu kitabı. Gündəlik bir yenidən nəzərdən keçirin dizayn sualı və söz verirəm ki, dizayn dövrünü sındıra bilərsiniz.
Bu təlimatda Java-da bir sətrin rəqəm və ya ədədi olub olmadığını yoxlamaq üçün müxtəlif üsulları görəcəyik. A Sim ya bir qrup simvol, ya da rəqəm ola bilər. Sətirdə bir qrup rəqəm olduqda, onun bir ədədi və ya ədədi olduğunu deyə bilərik. Həmişə ikiqat sitatlar içərisində bir simli elan edirik. Misal: String val = "10"
. Bu vəziyyətdə simli ədədi olur.
Mündəricat
Bir sətrin bir rəqəm olduğunu yoxlamaq üçün müxtəlif üsullar
Java metodlarından istifadə edərək bir sətrin ədədi olub olmadığını yoxlayın
Java-da bir sətrin bir rəqəm olub olmadığını yoxlamaq üçün aşağıdakı kimi bir neçə daxili metod var. Rəqəmsal deyilsə atacaq NumberFormatException
.
- Integer.parseInt () - tam ədədi çevirir
- Integer.valueOf () - qaytarır a
new Integer()
dəyər. - Double.parseDouble () - ikiqat dəyərə çevrilir
- Float.parseFloat () - float dəyərinə çevrilir
- Long.parseLong () - uzun bir dəyərə çevrilir
İndi istifadə edərək bir nümunəyə baxaq Integer.parseInt().
Sətrin ədədi olub olmadığını yoxlamaq üçün istifadəçi tərəfindən müəyyən edilmiş bir funksiya yarada bilərik. Aşağıdakı nümunədə isInteger()
bir sətir ədədi olduqda metod doğrulayır. İstifadə edirik Integer.parseInt()
try-catch bloku daxilində metod və giriş sətrini təhlil etməyə çalışın. Uğurla təhlil edərsə, doğrunu qaytarırıq, əksinə tutma bloku içərisində false qaytarırıq. Bunun səbəbi parseInt()
üsul atar NumberFormatException
simli təhlil edə bilmirsə. Bundan sonra birbaşa bu funksiyanı sətrin ədədi olub olmadığını yoxlamaq üçün əsas metoddan çağıra bilərik.
public class StringNumericDemo { public static void main(String[] args) { String s = "100"; if(isInteger(s)) { System.out.println("String is numeric"); } else { bl System.out.println("String is not numeric"); } } public static boolean isInteger(String s) { System.out.println(String.format("Parsing string value: \"%s\"", s)); if(s == null || s.equals("")) { System.out.println("Cannot parse the string since it either null or empty"); return false; } try { int iVal = Integer.parseInt(s); return true; } catch(NumberFormatException e) { System.out.println("Cannot parse the string to integer"); } return false; } }
Parsing string value: "100" String is numeric
Eynilə, eyni məntiqi tətbiq edə bilərik parseDouble()
, parseLong()
or parseFloat()
ikiqat, uzun və ya float dəyəri ilə simli ötürsək də metodlar.
Apache ümumi kitabxanalarından istifadə
Apache ümumi kitabxanaları, əsas Java çərçivəsini genişləndirmək üçün istifadə edə biləcəyimiz ən geniş yayılmış üçüncü tərəf kitabxanasıdır. Bir sətrin ədədi olub olmadığını yoxlamaq üçün aşağıdakı 2 əsas kitabxananı ehtiva edir.
- SayıUtils
- StringUtils
Yuxarıda göstərilən siniflərdən istifadə etmək üçün müvafiq jar sənədlərini əlavə etməliyik (apache commons dil jar) sinif yoluna və sonra aşağıdakı ifadələri idxal edin
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils;
İndi kitabxanaların hər birini ətraflı şəkildə görəcəyik və bir sətrin ədədi olub olmadığını yoxlamaq üçün eyni tətbiq edəcəyik.
NumberUtils.isNumber ()
The isNumber()
NumberUtils sinfinin metodu giriş sətrini parametr olaraq götürür və ədədi olmadığını yoxlayır. Bir nömrə varsa, true qayıdır, əks halda false qaytarır.
import org.apache.commons.lang3.math.NumberUtils; public class StringNumericDemo2 { public static void main(String[] args) { String s = "123"; if(NumberUtils.isNumber(s)) { System.out.println("String is numeric"); } else { System.out.println("String is not numeric"); } } }
String is numeric
İndi əlifbaları bir sətirdə ötürsək, metodun nəyin qaytaracağını görək. Bu vəziyyətdə heç bir rəqəm olmadığı üçün yalan olur.
import org.apache.commons.lang3.math.NumberUtils; public class StringNumericDemo2 { public static void main(String[] args) { String s = "abc"; if(NumberUtils.isNumber(s)) { System.out.println("String is numeric"); } else { System.out.println("String is not numeric"); } } }
String is not numeric
NumberUtils.isDigits
isDigits()
başqa bir metoddur NumberUtils
bir sətrin say olub-olmadığını yoxlaya bilən sinif.
import org.apache.commons.lang3.math.NumberUtils; public class StringNumericDemo2 { public static void main(String[] args) { String s = "123"; if(NumberUtils.isDigits(s)) { System.out.println("String is numeric"); } else { System.out.println("String is not numeric"); } } }
String is numeric
StringUtils.isNümerik
StringUtils sinfi ehtiva edir isNumeric
bir sətrin bir rəqəmin olub-olmadığını yoxlayan metod. Bu metod bərabərdir NumberUtils.isNumber()
üsul və eyni şəkildə işləyir. Aşağıda StringUtils.isNumeric
metodu.
import org.apache.commons.lang3.StringUtils; public class StringNumericDemo2 { public static void main(String[] args) { String s = "123"; if(StringUtils.isNumeric(s)) System.out.println("String is numeric"); else System.out.println("String is not numeric"); } }
String is numeric
StringUtils.isNumericSpace
Arada boşluq olsa da, bir simli nömrələrin olub-olmadığını yoxlaya bilərik. Bunun üçün istifadə edə bilərik isNumericSpace
üsulu StringUtils
sinif. Aşağıda simli ədədi və boşluqlar olduğu bir nümunədir.
import org.apache.commons.lang3.StringUtils; public class StringNumericDemo2 { public static void main(String[] args) { String s = "123 333 5555"; if(StringUtils.isNumericSpace(s)) System.out.println("String is numeric"); else System.out.println("String is not numeric"); } }
String is numeric
RegEx istifadə etmək (Adi ifadə)
Bir sətrin ədədi olub olmadığını yoxlamaq üçün başqa bir metod Müntəzəm ifadə. Adi bir ifadə, simdə varsa, uyğunlaşdığımız və təsdiq edə biləcəyimiz bir qrup nümunədir. Aşağıda bir sətrin ədədi olub olmadığını yoxlayan bir regex nümunəsinə nümunə verilmişdir.
public class StringNumericRegEx { public static void main(String[] args) { String s = "12345"; boolean isNum = false; isNum = s.matches("[0-9]+[\\.]?[0-9]*"); if(isNum) System.out.println("String is numeric"); else System.out.println("String is not numeric"); } }
String is numeric
Character.isDigit istifadə
The Character
sinif adlı bir metod ehtiva edir isDigit()
müəyyən bir simvolun rəqəm olub olmadığını yoxlayır. İstifadəçi tərəfindən təyin olunmuş bir funksiya yarada bilərik isNumber()
bir simli ədədi olub olmadığını yoxlamaq üçün bunu həyata keçirmək. Əvvəlcə simli bir sıra simvollara çeviririk və sonra hər bir simvolun bir rəqəm olub olmadığını yoxlayın isDigit()
metod. Sətirdə ədədi olmayan hər hansı bir dəyər varsa, false, əks halda true qaytarır. Tutaq ki, giriş sətri “143asd2” -dir, alfasayısal olduğu üçün yalnış qaytarır.
public class StringNumericDemo3 { public static void main(String[] args) { String s = "14324"; int l = s.length(); boolean bResult = isNumber(s,l); if(bResult) { System.out.println(s + " is numeric"); } else System.out.println(s + " is not numeric"); } static boolean isNumber(String s, int l) { if(s == null || l == 0) return false; for(char c: s.toCharArray()) { if(!Character.isDigit(c)) return false; } return true; } }
14324 is numeric
Sizə də maraqlı ola bilər Sətri İnt
