所以我需要弄清楚如何找到字母表中首字母出现的字母。
到目前为止,我有这个:
import java.util.Scanner;
public class alphStr {
public static void main(String[] args) {
System.out.println("Please enter a word - ");
Scanner in = new Scanner(System.in);
String word = in.nextLine();
System.out.println("The word you entered was: " + word);
}
}
我想我可以使用“> ||<”来比较字符串中的字母但我不确定如何去做这件事。任何建议都会很棒!
在阅读完毕后,结束了这个解决方案,感谢大家的帮助。
import java.util.Scanner;
import java.util.Arrays;
public class alphStr {
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
System.out.print("Enter a word: ");
String word = input.next();
char[] chars = word.toCharArray();
Arrays.sort(chars);
String sorted = new String(chars);
char x = sorted.charAt(0);
System.out.println("Alphabetically, the first letter in your word is: " + x);
}
}
答案 0 :(得分:0)
我个人会使用String类的toCharArray()
方法。如在
char[] word2 = word.toCharArray()
。
执行此操作后,将第一个字母存储在单独的char变量中,并按字典顺序比较每个后续字母。通过这种方式,您可以找到首先出现在字符串中的字母(尽管您需要做更多工作才能在大写和小写之间进行排序!)
答案 1 :(得分:0)
您可以将单词中的字母转换为小写,然后将它们存储在数组中,
并通过比较字符串中每个字符的ASCII值来应用simple sorting algorithm
bubble sort
的略微修改版本来查找第一个字符。
char[] arr = word.toLowerCase().toCharArray();
// assume the smallest character is the character at index 0.
int first = 0;
// iterate through characters 1..n-1 to and check if any character is
// smaller than the one we have identified.
// if smaller, replace `first` with the index of the current character.
// at the end of the loop, `first`
//will have the index of the smallest character.
for(int i = 1; i < arr.length; i++) {
if(arr[i] < arr[first]) {
first = i;
}
}
System.out.println(word.charAt(first));
答案 2 :(得分:0)
世界末日的答案会起作用,但我个人会循环使用字母表来代替a-z,而是使用String.indexOf(currentCharacter)
代替。这样您就不必存储或比较任何内容,只需在第一次indexOf
返回-1以外的任何内容时突然退出循环。
答案 3 :(得分:0)
首先将字符串转换为Case“Lower”或upper并使用toCharArray()并迭代此数组直到string.length-1并将第一个char索引存储在temp变量中,并将char与char数组进行比较,如果发现char少于这个临时索引的char然后将此索引存储在char。
您可以在此处查看计划:Java program to find the first letter alphabetically in String