java 计算字符数组中空格出现的位置

				char[] chs = st.toCharArray();
				for(int i=0;i<chs.length; i++){
					if((" ").equals(chs[i])){
						System.out.println(i);
					}
				}

chs中有空格,但是语句貌似就没有执行,,求解!for循环里面的判断怎么写?

阅读 12.4k
2 个回答

因为chs的每一个元素是个char,不是String,而" "是一个String, " ".equals(' ')总是false。你的判断语句改成这样就可以了:

 if (chs[i] == ' ') 

另外,如果只是要找空格位置的话,用indexOf就行了:

 System.out.println("Hello world".indexOf(' ')); //输出5 

接felix021的答案,如果你想要找出所有空格的位置,还可以用Java 8 stream:

String str = "i am good ";
char[] chs = str.toCharArray();
IntStream.range(0, chs.length).filter(i -> chs[i] == ' ').forEach(System.out::println);
// output: 1, 4, 9
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题