没有循环或if语句的Java字符串搜索?

时间:2011-10-12 01:59:43

标签: java string search

如果我有

String myName = "First Last";

如果没有if或任何其他条件/循环,我怎么能只返回名称的首字母?

我一直在寻找这个!

由于

4 个答案:

答案 0 :(得分:7)

由于您无法循环或使用条件,因此无法检查任何内容,因此这是您唯一的选择:

/**
 * Gets the initials from a String. Note: Only works on the String "First Last"
 */
String getInitials(String s) {
    return "FL";
}

答案 1 :(得分:5)

没有某些形式的分支/循环/条件某处这是不可能的(以通用方式处理),但谁说我们需要做分支? (Regular expressions是强大的野兽 - 有时候太强大了,而且总是野兽......)

String name = "First Last";
String initials = name.replaceAll("[^A-Z]", "");

请注意,您的里程会有所不同:请以Steve McQueen(或Президент Российской Федерации)作为反例。修改上面的正则表达式是一个可行的解决方案(即“留作练习”;-),但要注意正则表达式的警告。

快乐的编码。

答案 2 :(得分:2)

  1. 使用charAt(int)方法获取角色。
  2. 使用indexOf(String)方法
  3. 查找姓氏的位置

    示例代码如下。

    String initial_name = myName.charAt(0)+"."+myName.charAt(myName.indexOf(' ')+1)+".";
    

答案 3 :(得分:0)

好的,这个怎么样:

String myName = "First Last";
String[] names = myName.split("\s+");
return names[0] + names[1];

当然请注意,这仅适用于由一些空格分隔的两个名称。找到不同数量的首字母可能需要正则表达式或一些条件:D