打印输入行中第一个字符小于第二个字符的字符对数

时间:2018-03-14 19:40:28

标签: java for-loop computer-science

我不确定如何比较字符char< Char并添加计数

它应该打印 输入一行: antidisestablishmentarianism \(无论用户想输入什么)

你的答案15

import java.util.Scanner;

public class CountRisingPairs {

    public static void main(String[] args) {
        Scanner in =new Scanner(System.in);       
        System.out.println(" Enter a string");      

        String S=in.next();      
        int count;
        int value;
           for (int i=65; i<91; i++) {
              count=0;
              for (int j=0; j<in.length(); j++) {
              value=(int)in[j];
              if (value == i) {
                 count++;
              }
           }
           if (count>0) 
              System.out.println((char)i+" -- "+count);
        }
    }
}

我无法使用哈希映射或任何其他类型的循环。

4 个答案:

答案 0 :(得分:1)

循环应该遍历从第一个到下一个的所有字符但最后一个,这样您就可以比较相邻的字符。它们可以像整数值一样进行比较。

String s = "antidisestablishmentarianism";
int count = 0;
for( int i = 0; i < s.length() - 1; ++i ){
    if( s.charAt(i) < s.charAt(i+1) ) count++;
}
System.out.println( "count = " + count );

答案 1 :(得分:0)

为了比较输入中的字符,你应该保留一个变量,用前面的字符来比较。我不认为比较索引变量 i 是你想要的。然后你的if语句就像

if (value > previous) {
    count++;
}

此外,当迭代扫描器的输入时,您应该使用这样的while循环:

while (in.hasNext()) {
    // Your counting here
}

你需要一种终止循环的方法 - 你可以通过检查&#39; \ n&#39;来做到这一点。或者是其他东西。当然,如果你愿意,可以将while循环重写为for循环。

答案 2 :(得分:0)

String element = "antidisestablishmentarianism";

int count = 0;
for (int j=0; j<element.length(); j++)
{
  if(j+1 < element.length()){
    int x = Character.getNumericValue(element.charAt(j));
    int y = Character.getNumericValue(element.charAt(j+1));
    if(x>y){
        count++;
        System.out.println("Pair: "+element.charAt(j)+""+element.charAt(j+1));
    }
  }


}

System.out.println(count+" pairs found");

答案 3 :(得分:0)

根据您的代码,同时使用try-with-resources关闭扫描程序:

import java.util.Scanner;

public class CountRisingPairs {

    public static void main(String[] args) {
        try (Scanner in = new Scanner(System.in)) {
            System.out.println(" Enter a string");

            String inputString = in.next();
            int count = 0;
            char previousChar = 100;

            for (char currentChar : inputString.toCharArray()) {
                if (currentChar > previousChar) {
                    count++;
                }
                previousChar = currentChar;
            }
            System.out.println(count);
        }
    }
}