我想删除字符串特定位置的某些字符。我有这些职位,但我在删除角色方面遇到了问题。
我正在做的是:if (string.subSequence(k, k + 4).equals("\n\t\t\t")){
string = string.subSequence(0, k) + "" + s.subSequence(k, s.length());
}
我需要从字符串
中删除"\n\t\t\t"
答案 0 :(得分:9)
StringBuilder sb = new StringBuilder(str);
sb.delete(start, end);
sb.deleteCharAt(index);
String result = sb.toString();
答案 1 :(得分:1)
使用StringBuilder
String str=" ab a acd";
StringBuilder sb = new StringBuilder(str);
sb.delete(0,3);
sb.deleteCharAt(0);
String result = sb.toString();
System.out.println(result);
答案 2 :(得分:1)
public static String remove(int postion, String stringName) {
char [] charArray = stringName.toCharArray();
char [] resultArray = new char[charArray.length];
int count = 0;
for (int i=0; i< charArray.length; i++) {
if (i != postion-1) {
resultArray[count] = charArray[i];
count++;
}
}
return String.valueOf(resultArray);
}
答案 3 :(得分:0)
使用String.ReplaceAll()
代替此。
但如果您只想删除特定元素,则可以使用substring()
。
现在你想知道你已经知道的位置。
答案 4 :(得分:0)
将您的积分放在名为set
StringBuilder sb=new StringBuilder();
for(int i=0;i<string.length();i++){
if(!set.contains(string.charAt(i)))
sb.append(string.charAt(i));
}
String reformattedString=sb.toString();
答案 5 :(得分:0)
首先你必须将\
放在特殊字符的前面以便匹配两个字符串,因此你将拥有.equals("\"\\n\\t\\t\\t\"")
,否则子字符串将不会在内部被识别字符串。然后你必须解决的另一件事是索引开始和结束在.subSequence(k,k+10)
内的位置,因为第一个和最后一个字符分开10个位置而不是4个。还要注意当你修补字符串时你来自将0
定位到k
,将k+10
定位到str.length()
。如果你从0 --> k and k --> length()
开始,你只需加入旧字符串:)。
你的代码应该像这样工作,我已经测试过了
if(str.substring(k, k+10).equals("\"\\n\\t\\t\\t\""))
{
newstr = str.substring(0,k)+str.substring(k+10,(str.length()));
}
您也不需要+" "+
,因为您要添加字符串。想要看到这种效果的人可以运行这个简单的代码:
public class ReplaceChars_20354310_part2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String str = "This is a weird string containg balndbfhr frfrf br brbfbrf b\"\\n\\t\\t\\t\"";
System.out.println(str); //print str
System.out.println(ReplaceChars(str)); //then print after you replace the substring
System.out.println("\n"); //skip line
String str2 = "Whatever\"\\n\\t\\t\\t\"you want to put here"; //print str
System.out.println(str2); //then print after you replace the substring
System.out.println(ReplaceChars(str2));
}
//Method ReplaceChars
public static String ReplaceChars (String str) {
String newstr ="";
int k;
k = str.indexOf("\"\\n\\t\\t\\t\""); //position were the string starts within the larger string
if(str.substring(k, k+10).equals("\"\\n\\t\\t\\t\""))
{
newstr = str.substring(0,k)+str.substring(k+10,(str.length())); //or just str
}
return newstr;
}//end method
}