没有循环或if语句的Java字符串搜索?
如果我有一个没有循环或if语句的Java字符串搜索?
String myName = "First Last";
我如何,没有if或任何其他的条件语句/循环,返回的名字只是缩写?
我一直在寻找这个!
感谢
因为你不能在循环或使用条件,不能签任何东西,所以这是你唯一的选择:
/**
* Gets the initials from a String. Note: Only works on the String "First Last"
*/
String getInitials(String s) {
return "FL";
}
+1:在盒子外面思考。你找到了我想不到的答案。 – bdares
- 使用
charAt(int)
方法来获取一个字符。使用indexOf(String)
方法
示例代码姓氏
String initial_name = myName.charAt(0)+"."+myName.charAt(myName.indexOf(' ')+1)+".";
好的!我没有想到这一点,我觉得有点愚蠢! – andronikus
没有一些形式的分支/循环/条件句的地方这是不可能的(在一个通用的方式处理),但谁说我们需要做的分支? (Regular expressions是强大的野兽 - 有时太厉害了,总是兽......)
String name = "First Last";
String initials = name.replaceAll("[^A-Z]", "");
请注意,您的里程将有所不同:考虑Steve McQueen(或Президент Российской Федерации)作为反例。上面正则表达式的修改是一个可行的解决方案(即“留作练习”;-),但要注意正则表达式的警告。
快乐编码。
爱病理反例。像火一样,正则表达式只有在失去控制并完成所有事情时才是危险的。 – andronikus
OK,这个怎么样:
当然String myName = "First Last";
String[] names = myName.split("\s+");
return names[0] + names[1];
请注意,这只是整整两个名字的作品被一些空格隔开。查找不同数量的首字母可能需要一个正则表达式或一些条件:D
这是功课还是什么?我可以想到很多似乎没有使用条件的方法,但没有一个方法实际上没有使用它们。 –
为什么没有条件或循环?你试过什么了?而Brendan Long是正确的,无论如何,当它运行时你最终会得到BNE或相当的代码。 – bdares
不,我只是想获得最有效的方式来搜索字符串。我想也许有一种方法可以找到字符串中每个空格的位置或者什么...... – Matt