0

我有一个字符串数组。
我需要找到每个字符串中第一个大写字符的位置。

我该怎么做 ?
有人可以在java中给我一个示例代码吗?

import java.util.*; 
public class IPLRank { 
    public int n=0;
    private Scanner sc; 
    public void ranks(){ 
        sc = new Scanner(System.in); 
        System.out.println("Enter number of teams"); 
        n = sc.nextInt(); 
        char teams[][] = new char [n][50]; 
        System.out.println("Enter teams"); 
        for(int i=0;i<n;i++){ 
            for (int j=0; j<50; j++) 
                teams[i][j] = sc.next().charAt(0); 
        } 
        for(int i=0;i<n;i++){ 
            for (int j=0; j<50; j++) 
                System.out.println("Teams are "+teams[i][j]); 
            } 
        } 
    public static void main(String args[]){ 
        IPLRank r = new IPLRank(); r.ranks(); 
    } 
4

4 回答 4

3

尝试这个:

for (String s : arrayOfStrings) {
    for (int i = 0; i < s.length(); ++i) {
        if (Character.isUpperCase(s.charAt(i)) {
            System.out.println("First capital letter of string " + i + " is: " + s.charAt(i);
        }
    }
}
于 2013-06-19T12:25:25.477 回答
2

65 到 90 是大写字母的 ascii 代码范围。

看这里。http://www.ascii-code.com/

所以这里有适合你的方法。

public static int getFirstCapitalCharacterPosition(String x) {
    for(int i=0; i< x.length(); i++) {
        int val = x.charAt(i);
        if(val >= 65 && val <=90) {
          return i;  
        }
    } 
    return -1;
}

public static void main(String [] args) {
    String array = {"teSt","Test", "tesT"};
    for(String x : array) {
        System.out.println(getFirstCapitalCharacterPosition(x));
    }  
}
于 2013-06-19T12:32:42.450 回答
2

要查找第一个大写字母的索引,可以遍历字符串的 char 数组并使用 Character.isUppercase(Char c) 方法

public int firstUpperCaseIndex(String str) {        
    for(int i=0; i<str.length(); i++) {
        if(Character.isUpperCase(str.charAt(i))) {
            return i;
        }
    }
    return -1;
}
于 2013-06-19T12:24:49.523 回答
0

我可以建议您查看 ASCII 表。它可能会解决你的问题。

于 2013-06-19T12:24:48.067 回答