Bir simli Java-da bir rəqəm olub olmadığını necə yoxlamaq olar


JavaBaxılıb 228

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.

Bir sətrin bir rəqəm olduğunu yoxlamaq üçün müxtəlif üsullar

Sətrin bir rəqəm olub olmadığını necə yoxlamaq olarPin

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;

sətrin ədədi olub olmadığını yoxlayınPin

İ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

arayış

Crack Sistemi Dizayn Müsahibələri
Translate »
1