2015-10-02 5 views
0

у меня есть задание, говоря:Как преобразовать строку в целое число

  1. Характер часть кода курса (первые 3 символа кода курса), например, (csc), необходимо заменить на заглавные буквы.

  2. Вы должны сохранить уровень ученика, который соответствует первой цифре курса с правой стороны, например. если код курса CSC224, этот студент находится на уровне 4.

  3. Вы должны рассчитать оставшееся количество терминов для студента выпускника на основе текущего уровня , при условии, что последний уровень уровня 10.

Я мог бы сделать первые два очка, но я запас в третьем. Я знаю, что я не могу выполнять операции между String и Int, поэтому мне нужно преобразовать str в int. но это не помогло мне, я не знаю почему?!.

import java.util.*; 
    public class HighSpecialCourseCode 
    { 
    static Scanner input = new Scanner (System.in); 
    public static void main (String[] args) 
    { 


    // declaring 
    String CourseCode; 
    String Level ; 

    // input 
    System.out.println("Course code:"); 
    CourseCode=input.next().toUpperCase(); 
    System.out.println("\nCourse Code: "+ CourseCode); 

    // output 
    Level=CourseCode.substring(CourseCode.length()-1); 
    System.out.println("Student Level: "+ Level); 

    int RemainingTerms = Integer.parseInt("Level"); 
    System.out.print("Remaining Terms: " + (10 - Level)); 


    } 
    } 

это мой код, и когда я скомпилировать его, я получаю:

HighSpecialCourseCode.java:25: error: bad operand types for binary operator '-' 
System.out.print("Remaining Terms: "+ (10 - Level)); 
            ^
    first type: int 
    second type: String 
1 error 

я уже конвертированы (уровень), так почему не работает !!

+3

Возможный дубликат [Преобразование строки в Int в Java?] (Http://stackoverflow.com/questions/5585779/converting-string-to- int-in-java) –

+0

Вы никогда не преобразовывали уровень из String в int –

+0

. Для получения хорошей практики ознакомьтесь с этой статьей о соглашениях об именах переменных: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables .html –

ответ

4

Вместо:

int RemainingTerms = Integer.parseInt("Level"); 

Должно быть:

int RemainingTerms = Integer.parseInt(Level); 

Тогда вам нужно использовать RemainingTerms не Level в следующей строке.

System.out.print("Remaining Terms: " + (10 - RemainingTerms)); 

Помимо

Вы действительно должны следовать соглашению об именах Java и использовать нижний верблюжий корпус для переменных, читайте здесь: http://www.oracle.com/technetwork/java/codeconventions-135099.html

2

Попробуйте это:

System.out.print("Remaining Terms: " + (10 - Integer.valueOf(Level))); 
0
  1. Ваши переменная Level является строкой. Это всегда строка. Вы не можете выполнить арифметику со строками.
  2. Создана переменная с именем RemainingTerms, которая является int. Используйте его в своей арифметике.

Так изменить эту линию:

System.out.print("Remaining Terms: " + (10 - RemainingTerms)); 

У вас есть другая ошибка, которая не будет сообщается, пока вы можете скомпилировать и запустить программу:

int RemainingTerms = Integer.parseInt("Level"); 

На этой строке вы пытаетесь проанализировать литеральную строку "Level" - целое число, но эти буквы не представляют собой число. То, что вы хотите сделать, это передать строку, которую вы извлекли из кода курса, а не буквы L-e-v-el.

int RemainingTerms = Integer.parseInt(Level); 
0

Попробуйте это ....

System.out.print("Remaining Terms: "+ (10 - Integer.parseInt(Level))); 
Смежные вопросы