2000. 反转单词前缀
给你一个下标从 0 开始的字符串 word 和一个字符 ch 。找出 ch 第一次出现的下标 i ,反转 word 中从下标 0 开始、直到下标 i 结束(含下标 i )的那段字符。如果 word 中不存在字符 ch ,则无需进行任何操作。
例如,如果 word = “abcdefd” 且 ch = “d” ,那么你应该 反转 从下标 0 开始、直到下标 3 结束(含下标 3 )。结果字符串将会是 “dcbaefd” 。
返回 结果字符串 。
示例:
输入:word = “abcdefd”, ch = “d”
输出:“dcbaefd”
解释:“d” 第一次出现在下标 3 。
反转从下标 0 到下标 3(含下标 3)的这段字符,结果字符串是 “dcbaefd” 。
class Solution {
public String reversePrefix(String word, char ch) {
boolean flag=false;
int first=0;
for(int i=0;i<word.length();i++)
{
if(word.charAt(i)==ch)
{
flag=true;
first=i;
break;
}
}
if(flag){
return new StringBuffer(word.substring(0,first+1)).reverse().toString()+word.substring(first+1);
}
return word;
}
}
补充知识:
字符串反转方式
1.利用字符串的拼接(charAt()方法),把后遍历出来的放在前面即可实现反转(reverse=s.charAt(i)+reverse)
2.利用字符串你的拼接(toCharArray()处理成字符数组的方法),把后遍历出来的放在前面即可实现反转
3.利用StringBuffer的reverse()方法
4.利用递归的方法,类似二分查找的折半思想
字符串转数组
1.利用string.split("")转换为字符串数组
数组转字符串
1.org.apache.commons.lang3.StringUtils包 String str4 = StringUtils.join(arr, “,”)
2.org.apache.commons.lang3.ArrayUtils包 ArrayUtils.toString(arr, “,”) 数组转字符串