我不确定如何比较字符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);
}
}
}
我无法使用哈希映射或任何其他类型的循环。
答案 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);
}
}
}