2016-10-08 2 views
0

В этом вопросе необходимо найти расстояние между двумя буквами , например. Между А и Е, буквы B, C, D.So, расстояние между буквами является количество букв + 1 т.е., 4 here.But я не получаю выход для этого кодаЧтобы найти расстояние между двумя буквами

 import java.util.*; 
    public class Main{ 
     public static void main(String args[]){ 
     String s1,s2; 
     Scanner input=new Scanner(System.in); 
     input.nextLine(); 
     s1=input.nextLine(); 
     input.nextLine(); 
     s2=input.nextLine(); 
     int result=((int)s2.toLowerCase().charAt(0)-(int)s1.toLowerCase().charAt(0))+1; 
     result=Math.abs(result); 
     System.out.println(result); 

    } 
} 
+0

У вас слишком много input.nextLine() заявления в своем коде (вы в настоящее время чтения четыре строки вместо двух). Кроме того, +1 не требуется. – Nevay

+0

Прежде всего, вы должны заменить первый и третий вызовы nextLine() следующим() или просто удалить его, но помните о дополнительных \ n в конце. Затем вы должны удалить +1 как @Nevay. –

ответ

0

You имеют дополнительные вызовы метода nextLine. Изменил код, чтобы он работал.

import java.util.Scanner; 

public class LetterDistance { 

    public static void main(String[] args) { 

     String s1, s2; 
     Scanner input = new Scanner(System.in); 
     s1 = input.nextLine(); 
     s2 = input.nextLine(); 
     int result = ((int) s2.toLowerCase().charAt(0) - (int) s1.toLowerCase() 
       .charAt(0)) + 1; 
     result = Math.abs(result); 
     System.out.println(result); 

    } 

} 
+0

Я пробовал это ... все еще не работает – PiGamma

+0

Я не думаю, что вы хотите '+ 1' в строке' int result = ((int) s2.toLowerCase(). CharAt (0) - (int) s1 .toLowerCase(). charAt (0)) + 1; 'когда я его удаляю, он работает так, как ожидалось. – PEF

+0

Это то, что я получаю: «Исключение в потоке» main «java.util.NoSuchElementException: Не найдено ни одной строки на java.util.Scanner.nextLine (Scanner.java:1585) на Main.main (Main.java: 7) « – PiGamma

0
Scanner input = new Scanner(System.in); 

System.out.print("Write 1. character: "); 
String s1 = input.nextLine(); 
System.out.print("Write 2. character: "); 
String s2 = input.nextLine(); 

String alphabet = "abcdefghijklmnopqrstuvwxyz"; 

int s1no = alphabet.indexOf(s1); 
int s2no = alphabet.indexOf(s2); 

if (s1no > s2no) 
System.out.println("Distance: " + (s1no - s2no)); 
else 
System.out.println("First character must be bigger than second character"); 
Смежные вопросы