如果我有
String myName = "First Last";
如果没有if或任何其他条件/循环,我怎么能只返回名称的首字母?
我一直在寻找这个!
由于
答案 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)
charAt(int)
方法获取角色。indexOf(String)
方法示例代码如下。
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