Bir String'i Java'da bir int'ye nas─▒l d├Ân├╝┼čt├╝rebilirim?


Al─▒nan cevaba git


String Bir int in Java'y─▒ nas─▒l d├Ân├╝┼čt├╝rebilirim ?

Dize yaln─▒zca say─▒lar i├žeriyor ve temsil etti─či say─▒y─▒ d├Ând├╝rmek istiyorum.

├ľrne─čin, dizeye "1234" verilen sonu├ž say─▒ olmal─▒d─▒r 1234 .


2863









Cevap say─▒s─▒n─▒ say: 30






 String myString = "1234";
int foo = Integer.parseInt(myString);
 

Java Dok├╝mantasyonuna bakarsan─▒z , "yakala" n─▒n fark─▒na var─▒rs─▒n─▒z ki bu i┼člev bir atama yapabilir NumberFormatException ;

 int foo;
try {
   foo = Integer.parseInt(myString);
}
catch (NumberFormatException e)
{
   foo = 0;
}
 

(Bu tedavi varsay─▒lan olarak hatal─▒ bi├žimlendirilmi┼č bir say─▒d─▒r 0 , ancak isterseniz ba┼čka bir ┼čey yapabilirsiniz.)

Alternatif olarak, Ints Java 8'lerle birlikte Optional bir dizgiyi int'ye d├Ân├╝┼čt├╝rmek i├žin g├╝├žl├╝ ve ├Âzl├╝ bir y├Ântem yapan Guava k├╝t├╝phanesindeki bir y├Ântemi kullanabilirsiniz :

 import com.google.common.primitives.Ints;

int foo = Optional.ofNullable(myString)
 .map(Ints::tryParse)
 .orElse(0)
 

3925







├ľrne─čin, i┼čte iki yol:

 Integer x = Integer.valueOf(str);
// or
int y = Integer.parseInt(str);
 

Bu y├Ântemler aras─▒nda k├╝├ž├╝k bir fark vard─▒r:

  • valueOf yeni veya ├Ânbelle─če al─▒nm─▒┼č bir ├Ârne─čini d├Ând├╝r├╝r java.lang.Integer
  • parseInt ilkel d├Ând├╝r├╝r int .

Ayn─▒s─▒ t├╝m durumlar i├žin: Short.valueOf / parseShort , Long.valueOf / parseLong , vs.


647







G├Âz ├Ân├╝nde bulundurulmas─▒ gereken ├žok ├Ânemli bir nokta, Integer ayr─▒┼čt─▒r─▒c─▒s─▒n─▒n Javadoc'da belirtildi─či gibi NumberFormatException'─▒ atmas─▒d─▒r .

 int foo;
String StringThatCouldBeANumberOrNot = "26263Hello"; //will throw exception
String StringThatCouldBeANumberOrNot2 = "26263"; //will not throw exception
try {
      foo = Integer.parseInt(StringThatCouldBeANumberOrNot);
} catch (NumberFormatException e) {
      //Will Throw exception!
      //do something! anything to handle the exception.
}

try {
      foo = Integer.parseInt(StringThatCouldBeANumberOrNot2);
} catch (NumberFormatException e) {
      //No problem this time, but still it is good practice to care about exceptions.
      //Never trust user input :)
      //Do something! Anything to handle the exception.
}
 

B├Âl├╝nm├╝┼č arg├╝manlardan tamsay─▒ de─čerleri almaya ├žal─▒┼č─▒rken veya bir ┼čeyi dinamik olarak ayr─▒┼čt─▒r─▒rken bu istisnay─▒ ele almak ├Ânemlidir.


233







Manuel olarak yap─▒n:

 public static int strToInt( String str ){
    int i = 0;
    int num = 0;
    boolean isNeg = false;

    //Check for negative sign; if it's there, set the isNeg flag
    if (str.charAt(0) == '-') {
        isNeg = true;
        i = 1;
    }

    //Process each character of the string;
    while( i < str.length()) {
        num *= 10;
        num += str.charAt(i++) - '0'; //Minus the ASCII code of '0' to get the value of the charAt(i++).
    }

    if (isNeg)
        num = -num;
    return num;
}
 

81







Alternatif bir ├ž├Âz├╝m Apache Commons ' NumberUtils kullanmakt─▒r :

 int num = NumberUtils.toInt("1234");
 

Apache yard─▒mc─▒ program─▒ g├╝zel, ├ž├╝nk├╝ dize ge├žersiz bir say─▒ bi├žimindeyse, her zaman 0 d├Ând├╝r├╝l├╝r. Dolay─▒s─▒yla, try catch blo─čunu kurtar─▒yorsunuz.

Apache NumberUtils API S├╝r├╝m 3.4


45







┼×u anda kolej i├žin ├Âdev yap─▒yorum, yukar─▒dakiler gibi belirli ifadeleri kullanam─▒yorum ve ASCII masas─▒na bakarak bunu yapmay─▒ ba┼čard─▒m. ├çok daha karma┼č─▒k bir kod, ancak benim gibi k─▒s─▒tl─▒ olan ba┼čkalar─▒na yard─▒mc─▒ olabilir.

Yap─▒lacak ilk ┼čey girdiyi, bu durumda bir rakam dizesini almakt─▒r; Onu arayaca─č─▒m String number ve bu durumda, 12 say─▒s─▒n─▒ kullanarak ├Ârnekleyece─čim. String number = "12";

Di─čer bir s─▒n─▒rlama, tekrarlayan d├Âng├╝leri kullanamad─▒─č─▒m ger├že─čiydi, bu nedenle, bir for d├Âng├╝ (m├╝kemmel olurdu) da kullan─▒lamazd─▒. Bu bizi biraz k─▒s─▒tlar, fakat sonra yine hedef budur. Sadece iki rakama ihtiya├ž duydu─čum i├žin (son iki haneyi alarak), basit bir ├ž├Âz├╝m├╝ charAt ├ž├Âzd├╝:

  // Obtaining the integer values of the char 1 and 2 in ASCII
 int semilastdigitASCII = number.charAt(number.length()-2);
 int lastdigitASCII = number.charAt(number.length()-1);
 

Kodlar─▒ alarak, sadece masaya bakmam─▒z ve gerekli d├╝zeltmeleri yapmam─▒z gerekiyor:

  double semilastdigit = semilastdigitASCII - 48;  //A quick look, and -48 is the key
 double lastdigit = lastdigitASCII - 48;
 

┼×imdi neden iki kat─▒? Eh, ger├žekten "garip" bir ad─▒m y├╝z├╝nden. ┼×u anda 1 ve 2 olmak ├╝zere iki ├žiftimiz var, ama bunu 12'ye d├Ân├╝┼čt├╝rmemiz gerekiyor, yapabilece─čimiz hi├žbir matematiksel i┼člem yok.

─░kincisini (lastdigit) ┼ču ┼čekilde 10'a b├Âlerek 2/10 = 0.2 (bu nedenle neden iki kat─▒na ├ž─▒kar─▒r─▒z) ┼č├Âyle:

  lastdigit = lastdigit/10;
 

Bu sadece say─▒larla oynuyor. Son haneyi ondal─▒k basama─ča ├ževiriyorduk. Ama ┼čimdi ne oldu─čuna bak.

  double jointdigits = semilastdigit + lastdigit; // 1.0 + 0.2 = 1.2
 

Matemati─če fazla girmeden, bir birimin basamaklar─▒n─▒ ├╝nitelerle izole ediyoruz. G├Âr├╝yorsunuz, sadece 0-9'u d├╝┼č├╝nd├╝─č├╝m├╝z i├žin, 10'un katlar─▒ ile b├Âlmek, onu saklad─▒─č─▒n─▒z bir "kutu" olu┼čturmak gibidir (birinci s─▒n─▒f ├Â─čretmeninizin size ne kadar ├╝nite oldu─čunu a├ž─▒klad─▒─č─▒ zamanlar─▒ d├╝┼č├╝n├╝n). Yani:

  int finalnumber = (int) (jointdigits*10); // Be sure to use parentheses "()"
 

Ve i┼čte gidiyorsun. A┼ča─č─▒daki s─▒n─▒rlamalar─▒ g├Âz ├Ân├╝nde bulundurarak, bir rakam dizesini (bu durumda, iki rakam), bu iki rakamdan olu┼čan bir tamsay─▒ya d├Ân├╝┼čt├╝rd├╝n├╝z:

  • Tekrarlanan d├Âng├╝ yok
  • Ayr─▒┼čt─▒rma gibi "B├╝y├╝" ─░fadeleri Yok

44


2014-03-20





Integer.decode

Ayr─▒ca kullanabilirsiniz public static Integer decode(String nm) throws NumberFormatException .

Ayr─▒ca, taban 8 ve 16 i├žin de ├žal─▒┼č─▒r:

 // base 10
Integer.parseInt("12");     // 12 - int
Integer.valueOf("12");      // 12 - Integer
Integer.decode("12");       // 12 - Integer
// base 8
// 10 (0,1,...,7,10,11,12)
Integer.parseInt("12", 8);  // 10 - int
Integer.valueOf("12", 8);   // 10 - Integer
Integer.decode("012");      // 10 - Integer
// base 16
// 18 (0,1,...,F,10,11,12)
Integer.parseInt("12",16);  // 18 - int
Integer.valueOf("12",16);   // 18 - Integer
Integer.decode("#12");      // 18 - Integer
Integer.decode("0x12");     // 18 - Integer
Integer.decode("0X12");     // 18 - Integer
// base 2
Integer.parseInt("11",2);   // 3 - int
Integer.valueOf("11",2);    // 3 - Integer
 

int Bunun yerine almak Integer istiyorsan─▒z kullanabilirsiniz:

  1. Unboxing:

     int val = Integer.decode("12"); 
     
  2. intValue() :

     Integer.decode("12").intValue();
     

33







Verilen String'in bir Tamsay─▒ i├žermedi─či en k├╝├ž├╝k ihtimal oldu─čunda, bu ├Âzel durumu ele alman─▒z gerekir. Ne yaz─▒k ki, standart Java y├Ântemleri Integer::parseInt ve bu ├Âzel durumun sinyalini Integer::valueOf almak NumberFormatException i├žin bir atar . Bu nedenle, genel olarak k├Ât├╝ kodlama stili olarak kabul edilen ak─▒┼č kontrol├╝ i├žin istisnalar kullanman─▒z gerekir.

Benim d├╝┼č├╝nceme g├Âre, bu ├Âzel durum iade edilerek ele al─▒nmal─▒d─▒r Optional<Integer> . Java b├Âyle bir y├Ântem sunmad─▒─č─▒ndan, ┼ču sarmalay─▒c─▒y─▒ kullan─▒yorum:

 private Optional<Integer> tryParseInteger(String string) {
    try {
        return Optional.of(Integer.valueOf(string));
    } catch (NumberFormatException e) {
        return Optional.empty();
    }
}
 

Kullan─▒m─▒:

 // prints 1234
System.out.println(tryParseInteger("1234").orElse(-1));
// prints -1
System.out.println(tryParseInteger("foobar").orElse(-1));
 

Bu hala dahili olarak ak─▒┼č kontrol├╝ i├žin istisnalar kullan─▒rken, kullan─▒m kodu ├žok temiz hale gelir.


26







Bir dizgiyi bir int'ye d├Ân├╝┼čt├╝rmek, bir say─▒y─▒ d├Ân├╝┼čt├╝rmekten ├žok daha karma┼č─▒kt─▒r. A┼ča─č─▒daki konular─▒ d├╝┼č├╝nd├╝n├╝z:

  • Dize sadece 0-9 aras─▒ say─▒lar i├žeriyor mu?
  • Dizeden ├Ânce veya sonra - / + ' n─▒n nesi var ? Bu m├╝mk├╝n m├╝ (muhasebe numaralar─▒na at─▒fta bulunarak)?
  • MAX _- / MIN_INFINITY ile ilgili ne var ? ─░p 9999999999999999999999 ise ne olacak? Makine bu dizgiyi int olarak alg─▒layabilir mi?

23







Bunu yapmak i├žin y├Ântemler:

  1. Integer.parseInt(s)
 2. Integer.parseInt(s, radix)
 3. Integer.parseInt(s, beginIndex, endIndex, radix)
 4. Integer.parseUnsignedInt(s)
 5. Integer.parseUnsignedInt(s, radix)
 6. Integer.parseUnsignedInt(s, beginIndex, endIndex, radix)
 7. Integer.valueOf(s)
 8. Integer.valueOf(s, radix)
 9. Integer.decode(s)
 10. NumberUtils.toInt(s)
 11. NumberUtils.toInt(s, defaultValue)
 

Integer.valueOf, Integer nesnesini, di─čer t├╝m y├Ântemleri ├╝retir - ilkel int.

Commons-lang3'ten son 2 y├Ântem ve buraya d├Ân├╝┼čt├╝rmekle ilgili b├╝y├╝k yaz─▒ .


23







Bir String de─čerini bir tamsay─▒ de─čerine d├Ân├╝┼čt├╝rmek parseInt(String str) i├žin Integer wrapper s─▒n─▒f─▒n─▒n y├Ântemini kullanabiliriz .

├ľrne─čin:

 String strValue = "12345";
Integer intValue = Integer.parseInt(strVal);
 

Integer S─▒n─▒f ayr─▒ca a┼ča─č─▒dakileri sa─člar valueOf(String str) : y├Ântemi

 String strValue = "12345";
Integer intValue = Integer.valueOf(strValue);
 

Ayr─▒ca kullanabilirsiniz toInt(String strValue) ait NumberUtils Utility S─▒n─▒f d├Ân├╝┼č├╝m i├žin:

 String strValue = "12345";
Integer intValue = NumberUtils.toInt(strValue);
 

22







Bir ├ž├Âz├╝m├╝m var ama bunun ne kadar etkili oldu─čunu bilmiyorum. Ama iyi ├žal─▒┼č─▒yor ve bence onu iyile┼čtirebilirsin. ├ľte yandan JUnit ile do─čru ad─▒m atan birka├ž test yapt─▒m . Fonksiyonu ve testi ekledim:

 static public Integer str2Int(String str) {
    Integer result = null;
    if (null == str || 0 == str.length()) {
        return null;
    }
    try {
        result = Integer.parseInt(str);
    } 
    catch (NumberFormatException e) {
        String negativeMode = "";
        if(str.indexOf('-') != -1)
            negativeMode = "-";
        str = str.replaceAll("-", "" );
        if (str.indexOf('.') != -1) {
            str = str.substring(0, str.indexOf('.'));
            if (str.length() == 0) {
                return (Integer)0;
            }
        }
        String strNum = str.replaceAll("[^\\d]", "" );
        if (0 == strNum.length()) {
            return null;
        }
        result = Integer.parseInt(negativeMode + strNum);
    }
    return result;
}
 

JUnit ile test etme:

 @Test
public void testStr2Int() {
    assertEquals("is numeric", (Integer)(-5), Helper.str2Int("-5"));
    assertEquals("is numeric", (Integer)50, Helper.str2Int("50.00"));
    assertEquals("is numeric", (Integer)20, Helper.str2Int("$ 20.90"));
    assertEquals("is numeric", (Integer)5, Helper.str2Int(" 5.321"));
    assertEquals("is numeric", (Integer)1000, Helper.str2Int("1,000.50"));
    assertEquals("is numeric", (Integer)0, Helper.str2Int("0.50"));
    assertEquals("is numeric", (Integer)0, Helper.str2Int(".50"));
    assertEquals("is numeric", (Integer)0, Helper.str2Int("-.10"));
    assertEquals("is numeric", (Integer)Integer.MAX_VALUE, Helper.str2Int(""+Integer.MAX_VALUE));
    assertEquals("is numeric", (Integer)Integer.MIN_VALUE, Helper.str2Int(""+Integer.MIN_VALUE));
    assertEquals("Not
     is numeric", null, Helper.str2Int("czv.,xcvsa"));
    /**
     * Dynamic test
     */
    for(Integer num = 0; num < 1000; num++) {
        for(int spaces = 1; spaces < 6; spaces++) {
            String numStr = String.format("%0"+spaces+"d", num);
            Integer numNeg = num * -1;
            assertEquals(numStr + ": is numeric", num, Helper.str2Int(numStr));
            assertEquals(numNeg + ": is numeric", numNeg, Helper.str2Int("- " + numStr));
        }
    }
}
 

19







Kullan─▒n Integer.parseInt(yourString) .

A┼ča─č─▒dakileri unutmay─▒n:

Integer.parseInt("1"); // tamam

Integer.parseInt("-1"); // tamam

Integer.parseInt("+1"); // tamam

Integer.parseInt(" 1"); // ─░stisna (bo┼čluk)

Integer.parseInt("2147483648"); // ─░stisna (Tamsay─▒ maksimum 2,147,483,647 de─čeriyle s─▒n─▒rl─▒d─▒r )

Integer.parseInt("1.1"); // ─░stisna ( . Veya , veya hangisine izin verilmez)

Integer.parseInt(""); // ─░stisna (0 falan de─čil)

Sadece bir istisna t├╝r├╝ vard─▒r: NumberFormatException


19







Google Guava , dize ayr─▒┼čt─▒r─▒lamad─▒─č─▒nda d├Ând├╝ren tryParse (String) ├Â─česine sahiptir null , ├Ârne─čin:

 Integer fooInt = Ints.tryParse(fooString);
if (fooInt != null) {
  ...
}
 

16







T├╝m say─▒sal olmayan karakterleri kald─▒rarak ve sonra int'yi ayr─▒┼čt─▒rarak da ba┼člayabilirsiniz:

 string mystr = mystr.replaceAll( "[^\\d]", "" );
int number= Integer.parseInt(mystr);
 

Ancak bunun sadece negatif olmayan numaralar i├žin ├žal─▒┼čt─▒─č─▒ konusunda uyar─▒lmal─▒d─▒r.


13







├ľnceki cevaplar─▒n yan─▒ s─▒ra, birka├ž fonksiyon eklemek istiyorum. Bunlar─▒ kullan─▒rken elde edilen sonu├žlard─▒r:

 public static void main(String[] args) {
  System.out.println(parseIntOrDefault("123", 0)); // 123
  System.out.println(parseIntOrDefault("aaa", 0)); // 0
  System.out.println(parseIntOrDefault("aaa456", 3, 0)); // 456
  System.out.println(parseIntOrDefault("aaa789bbb", 3, 6, 0)); // 789
}
 

Uygulama:

 public static int parseIntOrDefault(String value, int defaultValue) {
  int result = defaultValue;
  try {
    result = Integer.parseInt(value);
  }
  catch (Exception e) {
  }
  return result;
}

public static int parseIntOrDefault(String value, int beginIndex, int defaultValue) {
  int result = defaultValue;
  try {
    String stringValue = value.substring(beginIndex);
    result = Integer.parseInt(stringValue);
  }
  catch (Exception e) {
  }
  return result;
}

public static int parseIntOrDefault(String value, int beginIndex, int endIndex, int defaultValue) {
  int result = defaultValue;
  try {
    String stringValue = value.substring(beginIndex, endIndex);
    result = Integer.parseInt(stringValue);
  }
  catch (Exception e) {
  }
  return result;
}
 

12







Bu kodu baz─▒ ├Ânlemlerle birlikte de kullanabilirsiniz.

  • Se├ženek # 1: ├ľrne─čin bir mesaj ileti┼čim kutusu g├Âstererek istisnay─▒ a├ž─▒k├ža i┼čleme sokun ve ard─▒ndan mevcut i┼č ak─▒┼č─▒n─▒n y├╝r├╝t├╝lmesini durdurun. ├ľrne─čin:

     try
        {
            String stringValue = "1234";
    
            // From String to Integer
            int integerValue = Integer.valueOf(stringValue);
    
            // Or
            int integerValue = Integer.ParseInt(stringValue);
    
            // Now from integer to back into string
            stringValue = String.valueOf(integerValue);
        }
    catch (NumberFormatException ex) {
        //JOptionPane.showMessageDialog(frame, "Invalid input string!");
        System.out.println("Invalid input string!");
        return;
    }
     
  • Se├ženek # 2: Bir istisna durumunda y├╝r├╝tme ak─▒┼č─▒ devam ederse etkilenen de─či┼čkeni s─▒f─▒rlay─▒n. ├ľrne─čin, catch blo─čundaki baz─▒ de─či┼čiklikler ile

     catch (NumberFormatException ex) {
        integerValue = 0;
    }
     

Kar┼č─▒la┼čt─▒rma veya herhangi bir t├╝r hesaplama i├žin bir dize sabiti kullanmak her zaman iyi bir fikirdir, ├ž├╝nk├╝ bir sabit asla bo┼č de─čer d├Ând├╝rmez.


9







Kullanabilirsiniz new Scanner("1244").nextInt() . Veya bir int bile var m─▒ diye sor: new Scanner("1244").hasNextInt()


9







Bu say─▒n─▒n her zaman ge├žerli bir tamsay─▒ olaca─č─▒ndan emin oldu─čunuz programlama yar─▒┼čmalar─▒nda, girdiyi ayr─▒┼čt─▒rmak i├žin kendi y├Ânteminizi yazabilirsiniz. Bu, do─črulama ile ilgili t├╝m kodlar─▒ atlayacakt─▒r (bunlardan hi├žbirine ihtiyac─▒n─▒z olmad─▒─č─▒ndan) ve biraz daha verimli olacakt─▒r.

  1. Ge├žerli pozitif tamsay─▒ i├žin:

     private static int parseInt(String str) {
        int i, n = 0;
    
        for (i = 0; i < str.length(); i++) {
            n *= 10;
            n += str.charAt(i) - 48;
        }
        return n;
    }
     
  2. Hem pozitif hem de negatif tamsay─▒lar i├žin:

     private static int parseInt(String str) {
        int i=0, n=0, sign=1;
        if (str.charAt(0) == '-') {
            i = 1;
            sign = -1;
        }
        for(; i<str.length(); i++) {
            n* = 10;
            n += str.charAt(i) - 48;
        }
        return sign*n;
    }
     
  3. Bu say─▒lardan ├Ânce veya sonra bir bo┼čluk bekliyorsan─▒z str = str.trim() i┼člem yapmadan ├Ânce bir i┼člem yapt─▒─č─▒n─▒zdan emin olun .


9







Belirtildi─či gibi, Apache Commons ' NumberUtils yapabilir. Bu d├Ând├╝r├╝r 0 bu bir int bir dize d├Ân├╝┼čt├╝remiyorsa.

Kendi varsay─▒lan de─čerinizi de tan─▒mlayabilirsiniz:

 NumberUtils.toInt(String str, int defaultValue)
 

├ľrnek:

 NumberUtils.toInt("3244", 1) = 3244
NumberUtils.toInt("", 1)     = 1
NumberUtils.toInt(null, 5)   = 5
NumberUtils.toInt("Hi", 6)   = 6
NumberUtils.toInt(" 32 ", 1) = 1 // Space in numbers are not allowed
NumberUtils.toInt(StringUtils.trimToEmpty("  32 ", 1)) = 32;
 

9







Basit├že bunu deneyebilirsiniz:

  • Kullan Integer.parseInt(your_string); bir d├Ân├╝┼čt├╝rme String i├žin int
  • Kullan Double.parseDouble(your_string); bir d├Ân├╝┼čt├╝rme String i├žin double

├ľrnek

 String str = "8955";
int q = Integer.parseInt(str);
System.out.println("Output>>> " + q); // Output: 8955
 

 String str = "89.55";
double q = Double.parseDouble(str);
System.out.println("Output>>> " + q); // Output: 89.55
 

7







Normal bir dize i├žin kullanabilirsiniz:

 int number = Integer.parseInt("1234");
 

Bir String olu┼čturucu ve String tamponu i├žin ┼čunlar─▒ kullanabilirsiniz:

 Integer.parseInt(myBuilderOrBuffer.toString());
 

7







 int foo=Integer.parseInt("1234");
 

Dizede say─▒sal olmayan veri olmad─▒─č─▒ndan emin olun.


6







String'i parametre olarak alan Integer yap─▒c─▒s─▒ndan hi├ž kimsenin bahsetmedi─činden biraz ┼ča┼č─▒rd─▒m.

─░┼čte burada:

 String myString = "1234";
int i1 = new Integer(myString);
 

Java 8 - Tamsay─▒l─▒ (Dize) .

Elbette, yap─▒c─▒ t├╝r├╝n├╝ d├Ând├╝r├╝r Integer ve bir kutudan ├ž─▒karma i┼člemi de─čeri d├Ân├╝┼čt├╝r├╝r int .


S├Âylemek ├Ânemlidir : Bu yap─▒c─▒ parseInt y├Ântemi ├ža─č─▒r─▒r .

 public Integer(String var1) throws NumberFormatException {
    this.value = parseInt(var1, 10);
}
 

6







Integer.parseInt () try...catch i┼člevini kullan─▒n ve say─▒sal olmayan bir karakter girilmesi durumunda herhangi bir hatay─▒ i┼člemek i├žin bir blo─čun i├žine koyun ;

 private void ConvertToInt(){
    String string = txtString.getText();
    try{
        int integerValue=Integer.parseInt(string);
        System.out.println(integerValue);
    }
    catch(Exception e){
       JOptionPane.showMessageDialog(
         "Error converting string to integer\n" + e.toString,
         "Error",
         JOptionPane.ERROR_MESSAGE);
    }
 }
 

5







─░┼čte ba┼čl─▒yoruz

 String str="1234";
int number = Integer.parseInt(str);
print number;//1234
 

5







Yedi ┼čekilde yap─▒labilir:

 import com.google.common.primitives.Ints;
import org.apache.commons.lang.math.NumberUtils;

String number = "999";
 

1) Kullan─▒m─▒ Ints.tryParse :

 int result = Ints.tryParse(number);
 

2) Kullan─▒m─▒ NumberUtils.createInteger :

 Integer result = NumberUtils.createInteger(number);
 

3) Kullan─▒m─▒ NumberUtils.toInt :

 int result = NumberUtils.toInt(number);
 

4) Kullan─▒m─▒ Integer.valueOf :

 Integer result = Integer.valueOf(number);
 

5) Kullan─▒m─▒ Integer.parseInt :

 int result = Integer.parseInt(number);
 

6) Kullan─▒m─▒ Integer.decode :

 int result = Integer.decode(number);
 

7) Kullan─▒m─▒ Integer.parseUnsignedInt :

 int result = Integer.parseUnsignedInt(number);
 

5







A┼ča─č─▒dakilerden herhangi birini kullanabilirsiniz:

  1. Integer.parseInt(s)
  2. Integer.parseInt(s, radix)
  3. Integer.parseInt(s, beginIndex, endIndex, radix)
  4. Integer.parseUnsignedInt(s)
  5. Integer.parseUnsignedInt(s, radix)
  6. Integer.parseUnsignedInt(s, beginIndex, endIndex, radix)
  7. Integer.valueOf(s)
  8. Integer.valueOf(s, radix)
  9. Integer.decode(s)
  10. NumberUtils.toInt(s)
  11. NumberUtils.toInt(s, defaultValue)

4







Bu, bir k├╝t├╝phane kullanmadan t├╝m ko┼čullar─▒ olumlu ve olumsuz olan eksiksiz bir programd─▒r

 import java.util.Scanner;


public class StringToInt {

    public static void main(String args[]) {
        String inputString;
        Scanner s = new Scanner(System.in);
        inputString = s.nextLine();

        if (!inputString.matches("([+-]?([0-9]*[.])?[0-9]+)")) {
            System.out.println("Not a Number");
        }
        else {
            Double result2 = getNumber(inputString);
            System.out.println("result = " + result2);
        }
    }


    public static Double getNumber(String number) {
        Double result = 0.0;
        Double beforeDecimal = 0.0;
        Double afterDecimal = 0.0;
        Double afterDecimalCount = 0.0;
        int signBit = 1;
        boolean flag = false;

        int count = number.length();
        if (number.charAt(0) == '-') {
            signBit = -1;
            flag = true;
        }
        else if (number.charAt(0) == '+') {
            flag = true;
        }
        for (int i = 0; i < count; i++) {
            if (flag && i == 0) {
                continue;
            }
            if (afterDecimalCount == 0.0) {
                if (number.charAt(i) - '.' == 0) {
                    afterDecimalCount++;
                }
                else {
                    beforeDecimal = beforeDecimal * 10 + (number.charAt(i) - '0');
                }
            }
            else {
                afterDecimal = afterDecimal * 10 + number.charAt(i) - ('0');
                afterDecimalCount = afterDecimalCount * 10;
            }
        }
        if (afterDecimalCount != 0.0) {
            afterDecimal = afterDecimal / afterDecimalCount;
            result = beforeDecimal + afterDecimal;
        }
        else {
            result = beforeDecimal;
        }
        return result * signBit;
    }
}
 

4







Bir y├Ântem parseInt (String) 'dir. ─░lkel bir int d├Ând├╝r├╝r:

 String number = "10";
int result = Integer.parseInt(number);
System.out.println(result);
 

─░kinci y├Ântem valueOf (String) 'dir ve yeni bir Integer () nesnesi d├Ând├╝r├╝r:

 String number = "10";
Integer result = Integer.valueOf(number);
System.out.println(result);
 

4



─░lgili yay─▒nlar


Bir String'i Java'da bir InputStream'e nas─▒l d├Ân├╝┼čt├╝rebilirim? [├žift]

Bir dize C# enum i├žin d├Ân├╝┼čt├╝rme

Bir dize C++ bir int i├žin ayr─▒┼čt─▒rma nas─▒l?

Ondal─▒k bir virg├╝l C# ile nas─▒l int d├Ân├╝┼čt├╝r├╝r├╝m?

Dize'yi Java'da Takvim Nesnesine D├Ân├╝┼čt├╝rme

Dize'yi Java'da "Karakter" dizisine d├Ân├╝┼čt├╝rme

Bir float64'├╝ Git'teki int de─čerine d├Ân├╝┼čt├╝rme

C# cinsinden bir int de─čerine d├Ân├╝┼čt├╝rme

Swift'de ÔÇťIndexÔÇŁ ÔÇťIntÔÇŁ yaz─▒n nas─▒l?

Java'da bir int i├žin ├žift a┼ča─č─▒ yuvarlayarak nas─▒l?

Etiketle ilgili di─čer sorular [java]


Ge├žerli ├çal─▒┼čma Dizinini Java'da Alma

Xcode hatas─▒ ÔÇťGeli┼čtirici Diski G├Âr├╝nt├╝s├╝ bulunamad─▒ÔÇŁ

Xcode 7 hatas─▒: ÔÇťÔÇŽ i├žin eksik iOS Da─č─▒t─▒m imzalama kimli─čiÔÇŽÔÇŁ

HttpClient iste─či i├žin ─░├žerik T├╝r├╝ ├╝stbilgisini nas─▒l belirlersiniz?

Ruby'de ÔÇťdevamÔÇŁ e┼čde─čeri

REST uygulamalar─▒n─▒n vatans─▒z olmas─▒ gerekiyorsa, oturumlar─▒ nas─▒l y├Ânetirsiniz?

Java'da ÔÇťUTF-8ÔÇŁ string de─či┼čmezini nereden alabilirim?

CSS neden sahte unsurlarla ├žal─▒┼č─▒yor?

Bir IPv6 adresinin metin g├Âsteriminin azami uzunlu─ču?

Bir haritan─▒n t├╝m tu┼člar─▒n─▒ yineleme