JavaRush /Блоги Java /Random-TG /Савол ва Ҷавоб: Чӣ тавр дуруст табдил додани String ба in...

Савол ва Ҷавоб: Чӣ тавр дуруст табдил додани String ба int дар Java?

Дар гурӯҳ нашр шудааст
Сатҳи тахминии донишҳои зарурӣ: ҷустуҷӯи Java Syntax ва каме Java Core.
Савол ва Ҷавоб: Чӣ тавр дуруст табдил додани String ба int дар Java?  - 1
Дар охири ҷустуҷӯи аввалин JavaRush мо дар бораи табдor намуд маълумот мегирем. Дар лексияҳои сатҳи 10 шумо мебинед, ки табдил додан intба Stringхеле содда аст ва дар маҷмӯъ, қариб ҳама намуди ибтидоиро Stringбе мушкилот табдил додан мумкин аст.
int x = 5;
String text = "X=" + x;
Инчунин, онҳое, ки аллакай дараҷаи 10-и ҷустуҷӯи Java Syntax-ро анҷом додаанд, медонанд, ки табдил додани истинод ба рақам ба истинод ба сатр ғайриимкон аст. Пас, роҳи беҳтарини табдил додани сатр ба адади ибтидоӣ кадом аст? Беҳтар аст, ки ин корро бо усули parseIntсинф анҷом диҳед Integer. Агар сатр ба type табдил дода нашавад, усул parseIntбояд Stringба intистисно табдил дода шавад ва истисноро барорад . NumberFormatExceptionint

Мисол

Хати асосӣ, ки сатрро ба адади бутун табдил медиҳад:
int i = Integer.parseInt (myString);
Агар сатри бо тағирёбанда нишондодашуда myStringадади дуруст бошад, ба мисли "1", "200", Java оромона онро ба навъи маълумоти ибтидоӣ табдил медиҳад int. Агар бо ягон сабаб ин ноком шавад, чунин амал метавонад истисноро ба вуҷуд орад NumberFormatException, бинобар ин, барои дуруст кор кардани барнома барои ҳама сатр, ба мо рамзи каме бештар лозим аст. Барномае, ки усули табдил додани Java String, intназорати имконпазирро нишон медиҳад NumberFormatException:
public class JavaStringToIntExample
{
  public static void main (String[] args)
  {
    // String s = "fred"; // use this if you need to test the //exception below
String s = "100";

    try
    {
      // this is where String is converted to int
      int i = Integer.parseInt(s.trim());

      // display the value after conversion
      System.out.println("int i = " + i);
    }
    catch (NumberFormatException nfe)
    {
      System.out.println("NumberFormatException: " + nfe.getMessage());
    }
  }

Муҳокима

Вақте ки шумо мисоли дар боло зикршударо меомӯзед, хоҳед дид, ки ин усул Integer.parseInt (s.trim ())барои табдил додани сатр sба адади бутун истифода мешавад iва ин дар сатри зерини code рӯй медиҳад:
int i = Integer.parseInt (s.trim ())
Аммо баъзан табдил додани сатр ба рақам кор намекунад. Дар мисоли мо чунин сатр номи фред аст. Мо метавонем дар бораи рамзҳое сӯҳбат кунем, ки дар онҳо ҳарфҳо дар компютер навишта мешаванд, аммо, ба таври расмӣ, фред рақам нест ва беҳтар аст, ки онро ҳамчун сатр тарк кунед. Барномаи мо тавре тарҳрезӣ шудааст, ки агар шумо кӯшиш кунед, ки "fred" -ро ба рақам табдил диҳед, раванд Integer parseIntистисноеро ба вуҷуд меорад NumberFormatException, ки шумо бояд онро дар блок идора кунед try / catch. Дар ин ҳолат шумо набояд усули trim ()синфро истифода баред String, аммо дар барномасозии воқеӣ шумо бояд онро истифода баред. Пас, мо онро ба шумо нишон додем. Азбаски ин мавзӯъ ба миён омадааст, дар ин ҷо баъзе "маслиҳатҳо" дар мавзӯи дарсҳо Stringва Integer:
  • Integer.toString (int i)барои табдил додани intсатрҳои Java истифода мешавад.
  • Агар шумо хоҳед, ки an objectро Stringба an object табдил диҳед Integer(ба ҷои синфи ибтидоӣ ) int, ба ҷои .valueOf ()IntegerparseInt ()
  • Агар ба шумо лозим ояд, ки сатрҳоро ба майдонҳои иловагии ибтидоии Java табдил диҳед, усулҳои монанди инро истифода баред Long.parseLong ().
Ҷавоб дод: Алис Уотсон
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION