作者familyst (阿嘎)
看板java
标题Re: [问题] 逻辑问题
时间Sat Feb 10 18:32:25 2007
这题用indexOf是算蛮有效率的一种方法了
如果用indexOf来写还必须注意一下的情况
程式码如下:
import java.lang.*;
public class Code
{
public static void main(String args[])
{
String str1="aaababaaaabbababa"; //原始字元串列
String str2=""; //空白,这放result,一开始为空
int index1=0; //用来放原始字串中"aba"的位置
int index2=0; //****************"aaa"的位置
while(true)
{
index1 = str1.indexOf("aba"); //step.1一开始先得两字
index2 = str1.indexOf("aaa"); //串的位置
if(index1==-1)
index1=999;
if(index2==-1)
index2=999;
if((index1==999)&&(index2==999))
break;
if(index1<index2) //step.2比较两字串的
{ if(index1==-1) //先後,先的字串index小
continue;
str2=str2+"1";
str1 = str1.substring(0,index1)+"***"+
str1.substring(index1+3);
}
else
{ if(index2==-1)
continue;
str2=str2+"0";
str1 = str1.substring(0,index2)+"***"+str1.substring(index2+3);
}
}
System.out.println(str2); //step.3印出结果
}
}
note:***是代表用来替换掉已找到的子字串,使回圈正常运作
999 是自己设定的一个大数,因为index在找不到子字串的时後会传回-1
若没有设定此数,则if会误判
ꬊ
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.114.0.228