2016-10-08 5 views
0

この質問では、2文字の間の距離を見つける必要があります。例えば、 です。 AとEの間で、文字は、文字間の距離は、文字の数+ 1すなわち、4 here.But B、C、D.Soでいる私は、あなたは、このコードに2文字間の距離を求めるには

 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

あなたは(あなたは現在、代わりに2の4行を読んで)自分のコードの中であまりにも多くのinput.nextLine()文を持っています。さらに、+1は必要ありません。 – Nevay

+0

まず最初に、next()を使ってnextLine()を1回目と3回目に置き換えるか、それを削除するだけですが、最後に\ nを追加することを覚えておいてください。その後、あなたは@Nevayが言及したように+1を取り除くべきです。 –

答えて

0

を出力が届きません余分な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

これは私が得ているものです: "例外"メイン "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"); 
関連する問題