如何以编程方式在字符串中查找特定字符
How to find a specific char in string programmatically
我怎么能在字符串中找到一个字母(如果它是 "cc" 在一起,它会留下它,但如果它只有一个 "c",它会删除它)?
我不知道该怎么做,所以如果有人知道我将非常感激。
我尝试将整个字符串拆分为一个制表符,并检查索引是否为 "c" 然后查看 +-1 索引,以检查 "c" 是否在其旁边,但它没有用.
现在我更改了“==”,但它仍然遗漏了一些字母。
如果我输入 "abaabbcbaccb" 它应该输出 →"aabaaaabbaaccb"
我的程序错过了独立 "c"..
public class NovNiz{
public static String urejanjeBesedila(String a){
String niz="";
a.toLowerCase();
String spr = a.replaceAll("a", "aa");
spr = spr.toLowerCase();
spr = spr.replaceAll("bb", "b");
String []tab=spr.split(" ");
if(tab.length>0){
for(int i=0;i<tab.length;i++){
if(tab[i].indexOf("cc")>0){
niz=niz+tab[i]+" ";
continue;
}
if(tab[i].indexOf("c")>=0){
int x=tab[i].indexOf("c");
StringBuffer sb= new StringBuffer(tab[i]);
sb.deleteCharAt(x);
tab[i]=sb.toString();
}
niz=niz+tab[i]+" ";
}
}
else{
String []tab2=spr.split("");
for(int i=0;i<tab.length;i++){
if(i==0){
if("c".equals(tab[i])&&"c".equals(tab[i+1])){
}
else if("c".equals(tab[i])){
tab[i]="";
}
}
else{
if("c".equals(tab[i])&&"c".equals(tab[i+1])||"c".equals(tab[i-1])){
}
else if("c".equals(tab[i])){
tab[i]="";
}
}
}
}
return niz;
}
}
你可以这样做:
final String input = "I'm a test string to drop 'c' but not 'cc', 'ccc', 'cccc', ok ?";
String result = input
.replaceAll( "c([^c])", "" )
.replaceAll( "c([^c])", "cc" );
// result will be "I'm a test string to drop '' but not 'cc', 'ccc', 'cccc', ok ?"
我怎么能在字符串中找到一个字母(如果它是 "cc" 在一起,它会留下它,但如果它只有一个 "c",它会删除它)?
我不知道该怎么做,所以如果有人知道我将非常感激。
我尝试将整个字符串拆分为一个制表符,并检查索引是否为 "c" 然后查看 +-1 索引,以检查 "c" 是否在其旁边,但它没有用.
现在我更改了“==”,但它仍然遗漏了一些字母。 如果我输入 "abaabbcbaccb" 它应该输出 →"aabaaaabbaaccb" 我的程序错过了独立 "c"..
public class NovNiz{
public static String urejanjeBesedila(String a){
String niz="";
a.toLowerCase();
String spr = a.replaceAll("a", "aa");
spr = spr.toLowerCase();
spr = spr.replaceAll("bb", "b");
String []tab=spr.split(" ");
if(tab.length>0){
for(int i=0;i<tab.length;i++){
if(tab[i].indexOf("cc")>0){
niz=niz+tab[i]+" ";
continue;
}
if(tab[i].indexOf("c")>=0){
int x=tab[i].indexOf("c");
StringBuffer sb= new StringBuffer(tab[i]);
sb.deleteCharAt(x);
tab[i]=sb.toString();
}
niz=niz+tab[i]+" ";
}
}
else{
String []tab2=spr.split("");
for(int i=0;i<tab.length;i++){
if(i==0){
if("c".equals(tab[i])&&"c".equals(tab[i+1])){
}
else if("c".equals(tab[i])){
tab[i]="";
}
}
else{
if("c".equals(tab[i])&&"c".equals(tab[i+1])||"c".equals(tab[i-1])){
}
else if("c".equals(tab[i])){
tab[i]="";
}
}
}
}
return niz;
}
}
你可以这样做:
final String input = "I'm a test string to drop 'c' but not 'cc', 'ccc', 'cccc', ok ?";
String result = input
.replaceAll( "c([^c])", "" )
.replaceAll( "c([^c])", "cc" );
// result will be "I'm a test string to drop '' but not 'cc', 'ccc', 'cccc', ok ?"