所以如果我有一个输入字符串并且有连字符的方法。喜欢“酷*男孩”,如果我想让java创建一个新的字符串,从该字符串的末尾开始并向后打印每个字母并继续直到它到达星号然后前进并再次打印星号后面的所有字母在酷*男孩的例子中,它是“yobboy”或高*学校将是“loohcsschool”......我将如何做到这一点。谢谢。
要把所有东西都拿到星号(这是不行的)我把,
int i;
String newStr = "";
for(i=s.length()-1; i >= s.charAt('*'); i--)
newStr = newStr + s.charAt(i);
我猜你不允许你在for循环中做出那个条件。但我只是不知道你会怎么做。请帮助谢谢!
答案 0 :(得分:2)
将条件更改为
s.charAt(i) != '*'
答案 1 :(得分:0)
最简单的方法是使用子字符串而不是循环。
String forward = s.substring(s.indexOf('*')+1);
String reverse = new StringBuilder(forward).reverse().toString();
return reverse+forward;
答案 2 :(得分:0)
未经测试的代码:
String s = "high*school";
String newString = "";
String[] arr = s.split("[*]");
if (arr.length == 2) {
newString = new StringBuilder(arr[1]).reverse().toString() + arr[1];
}else{
... if the string has no (or more than one) "*"...
handle it if it is reqired.
}
答案 3 :(得分:0)
不要重新发明轮子。 Apache Commons StringUtils库:
substringBefore(String str, String separator)
substringAfter(String str, String separator)
reverse(String str)
链接:http://commons.apache.org/proper/commons-lang/javadocs/api-3.3.2/index.html