java中一个关于indexOf的问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 20:12:15
java中一个关于indexOf的问题
address_name是个数组,里面有中文和数字,但是字符&只会有1个,代码如下:

int ceu;
for(int i=0;i<address_name.length;i++)
{
ceu=address_name[i].indexOf("&");
}address_name
ceu返回的值总是 -1,找不到&,但是address_name里每一个都有&啊,这是怎么回事呢?

&是一个特殊字符,要使用转译字符,加个\就可以了ceu=address_name[i].indexOf("\&");

indexOf(String str)的作用是返回第一次出现的指定子字符串在此字符串中的索引

如果str没有在要搜寻的字符串中出现,那么返回-1,
你的程序总是返回-1,那么字符串中肯定没有&
public class ttt
{ static String[] address_name={"saf&df","ghn&sfg","asf&hh"};
public static void main(String args[])
{
int ceu;
for(int i=0;i<address_name.length;i++)
{
ceu=address_name[i].indexOf("&");
System.out.print(ceu);
}

}
}
这是个测试程序,没问题

看你的代码
ceu等于address_name最后一个元素中&的index
确定address_name最后一个元素也有&?

address_name既然是数组,就有多个&,那么也有多个位置,你要返回ceu也应该是个数组比较好。
建议在循环中
System.out.println(address_name[i]);看看是什麽

address_name是字符串数组吗????