麻烦哪位童鞋们,帮我看一下这个程序咋写呀! http://topic.csdn.net/u/20111204/15/308e9568-0c8a-4e99-bfb8-6af355d3ccc9.html?83301 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 发错了http://zhidao.baidu.com/question/337744781.html public static void main(String[] args){ String s = "统计一个字符在字符串中的所有位置"; String condition = "字"; String result = getAllIndex(s, condition); System.out.println(result); } public static String getAllIndex(String s,String condition){ String result = ""; int fromIndex = 0; for (int i = 0; i < s.length(); i++) { int nextIndex = s.indexOf(condition,fromIndex); if(nextIndex!=-1){ result += nextIndex + ","; }else{ break; } fromIndex = nextIndex+1; } if(result.length()>0){ result = result.substring(0, result.length()-1); } return result; } import java.util.*;public class MainClass{ public static void main(String[] args) { String s="统计一个字符在字符串中的所有位置"; List<Character> all=new ArrayList<Character>(); for(int i=0;i<s.length();i++) { all.add(s.charAt(i)); } for(int j=0;j<all.size();j++) { if(all.get(j).equals('字')) { System.out.println(j); } } }} 多看看java API 中的String 你肯定能自己写出来的。加油!!! import java.util.LinkedHashMap;import java.util.Map;/** 统计一个字符在字符串中的所有位置 */public class MapDemo { public static void main(String[] args) { String str=" 统计一个字符在字符串中的所有位置"; System.out.println(count(str).get('字')); } public static Map<Character, String> count(String str) { Map<Character, String> map = new LinkedHashMap<Character, String>(); for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (map.containsKey(c)) {// 统计过 String s=map.get(c)+","+i;// 取出上次的值 map.put(c, s); } else {// 没有统计过 map.put(c, i+""); } } return map; }} public class AppearNum { public static void main(String[] args) { AppearNum an=new AppearNum(); System.out.println("请输入一串字符串:"); Scanner sc=new Scanner(System.in); String str=sc.nextLine(); System.out.println("请输入该字符串中您要查找的字:"); String s=sc.nextLine(); String result=an.getAllIndex(str,s); System.out.println(result); } public String getAllIndex(String str,String s){ while(true){ String result=""; int fromIndex=0; for(int i=0;i<str.length();i++){ int nextIndex=str.indexOf(s,fromIndex); if(nextIndex!=-1){ result+=nextIndex+","; } else{ System.out.println("大哥,你要查找的字符串不在刚输入的字符串里面啊"); continue; } fromIndex=nextIndex+1; } if(result.length()>0){ result=result.substring(0,result.length()-1); } return result; }}}这还是三楼的那个代码,只是稍微改了一下,求解:怎么让输入的字符串不在第一次输入的之内,然后光标返回要求重新输入字符串呢? public static void main(String[] args) { String s ="统计一个字符在字符串中的所有位置"; char [] ch = s.toCharArray(); char con = '字'; for(int i =0; i < ch.length ; i++) { if(con == ch[i]) { System.out.println(i); } } } public static void main(String[] args) { String s ="统计一个字符在字符串中的所有位置"; char [] ch = s.toCharArray(); char con = '字'; for(int i =0; i < ch.length ; i++) { if(con == ch[i]) { System.out.println(i); } } } 我用递归写了一个,这样效率能好一点,也挺简单。public class Test { public static void main(String[] args) { String s="统计一个字符在字符串中的所有位置字"; String ss = "字"; find(s,ss,0); } public static void find(String s,String ss,int n){ n=s.indexOf(ss,n); if(n!=-1){ n+=1; System.out.println(n); find(s,ss,n); } }} find方法第一个参数是数符串,第二个是要找的那个子字符串,第三个是从哪个位置开始查找,0就是表示从下标为0的位置找。 public static void main(String[] args) { String valueString = "统计一个字符在字符串中的所有位置字d符"; String aString = "字符"; System.out.println(getCount(valueString, aString)); } /** * @param string 字符串 * @param charSet 判断的那个字符 * @return 出现次数 */ static int count = 0; public static int getCount(String string, String charSet) { int index = string.indexOf(charSet); if (index == -1) { return count; } else { count++; String obj; if (charSet.length() < string.length()) { int a = string.indexOf(charSet); obj = string.substring(a + charSet.length()); getCount(obj, charSet); } else { return count; } } return count; } public static void main(String[] args) { String valueString = "字符统计一个字符在字符串中的所有位置字d符"; String aString = "字符"; System.out.println(getCount(valueString, aString)+"次"); String value = getIndex(valueString, aString); if (value != null) { value = value.substring(0,value.length()-1); } System.out.println(value); } /** * @param string 字符串 * @param charSet 判断的那个字符 * @return 出现次数 */ static int count = 0; public static int getCount(String string, String charSet) { int index = string.indexOf(charSet); if (index == -1) { return count; } else { count++; String obj; if (charSet.length() < string.length()) { int a = string.indexOf(charSet); obj = string.substring(a + charSet.length()); getCount(obj, charSet); } else { return count; } } return count; } //位置和排除的信息 static String strIndex = ""; static String otherStr = ""; public static String getIndex(String string, String charSet) { int index = string.indexOf(charSet); if (index == -1) { return strIndex; } else { strIndex += (otherStr.length())+index+","; String obj; if (charSet.length() < string.length()) { int a = string.indexOf(charSet); obj = string.substring(a + charSet.length()); //过滤一次之后 otherStr += string.substring(0,a+charSet.length()); getIndex(obj, charSet); } else { return strIndex; } } return strIndex; } IE6下保存时文件名称时文件名不一致 System.out.println和printInt这两个打印的有什么不同? 高手帮忙:web应用当中,加了过滤器,如果报错,就跳转不到错误页面了 关于ObjectInputStream的问题 MySQL连接问题. 2003 server 下安装了j2sdk-1_4_1_03-windows-i586之后,双击执行.jar文件为什么一闪而过,XP下却正常运行? 要求抛出异常,应该如何写? 请教! 菜鸟的问题:java与java script 的异同?? java applet小问题 推荐SWT教程 Java中GridLayout如何3行2列?
http://zhidao.baidu.com/question/337744781.html
public static void main(String[] args){
String s = "统计一个字符在字符串中的所有位置";
String condition = "字";
String result = getAllIndex(s, condition);
System.out.println(result);
}
public static String getAllIndex(String s,String condition){
String result = "";
int fromIndex = 0;
for (int i = 0; i < s.length(); i++) {
int nextIndex = s.indexOf(condition,fromIndex);
if(nextIndex!=-1){
result += nextIndex + ",";
}else{
break;
}
fromIndex = nextIndex+1;
}
if(result.length()>0){
result = result.substring(0, result.length()-1);
}
return result;
}
public class MainClass
{
public static void main(String[] args)
{
String s="统计一个字符在字符串中的所有位置";
List<Character> all=new ArrayList<Character>();
for(int i=0;i<s.length();i++)
{
all.add(s.charAt(i));
}
for(int j=0;j<all.size();j++)
{
if(all.get(j).equals('字'))
{
System.out.println(j);
}
}
}
}
import java.util.Map;/** 统计一个字符在字符串中的所有位置 */
public class MapDemo { public static void main(String[] args) {
String str=" 统计一个字符在字符串中的所有位置";
System.out.println(count(str).get('字'));
}
public static Map<Character, String> count(String str) {
Map<Character, String> map = new LinkedHashMap<Character, String>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (map.containsKey(c)) {// 统计过
String s=map.get(c)+","+i;// 取出上次的值
map.put(c, s);
} else {// 没有统计过
map.put(c, i+"");
}
}
return map;
}
}
public static void main(String[] args) {
AppearNum an=new AppearNum();
System.out.println("请输入一串字符串:");
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
System.out.println("请输入该字符串中您要查找的字:");
String s=sc.nextLine();
String result=an.getAllIndex(str,s);
System.out.println(result);
}
public String getAllIndex(String str,String s){
while(true){
String result="";
int fromIndex=0;
for(int i=0;i<str.length();i++){
int nextIndex=str.indexOf(s,fromIndex);
if(nextIndex!=-1){
result+=nextIndex+",";
}
else{
System.out.println("大哥,你要查找的字符串不在刚输入的字符串里面啊"); continue;
}
fromIndex=nextIndex+1;
}
if(result.length()>0){
result=result.substring(0,result.length()-1);
}
return result;
}}
}
这还是三楼的那个代码,只是稍微改了一下,求解:怎么让输入的字符串不在第一次输入的之内,然后光标返回要求重新输入字符串呢?
public static void main(String[] args) {
String s ="统计一个字符在字符串中的所有位置"; char [] ch = s.toCharArray();
char con = '字';
for(int i =0; i < ch.length ; i++)
{
if(con == ch[i])
{
System.out.println(i);
}
}
}
public static void main(String[] args) {
String s ="统计一个字符在字符串中的所有位置"; char [] ch = s.toCharArray();
char con = '字';
for(int i =0; i < ch.length ; i++)
{
if(con == ch[i])
{
System.out.println(i);
}
}
}
public static void main(String[] args) {
String s="统计一个字符在字符串中的所有位置字";
String ss = "字";
find(s,ss,0);
}
public static void find(String s,String ss,int n){
n=s.indexOf(ss,n);
if(n!=-1){
n+=1;
System.out.println(n);
find(s,ss,n);
}
}
}
find方法第一个参数是数符串,第二个是要找的那个子字符串,第三个是从哪个位置开始查找,0就是表示从下标为0的位置找。
String aString = "字符";
System.out.println(getCount(valueString, aString));
} /**
* @param string 字符串
* @param charSet 判断的那个字符
* @return 出现次数
*/
static int count = 0; public static int getCount(String string, String charSet) {
int index = string.indexOf(charSet);
if (index == -1) {
return count;
} else {
count++;
String obj;
if (charSet.length() < string.length()) {
int a = string.indexOf(charSet);
obj = string.substring(a + charSet.length());
getCount(obj, charSet); } else {
return count;
}
}
return count;
}
String aString = "字符";
System.out.println(getCount(valueString, aString)+"次");
String value = getIndex(valueString, aString);
if (value != null) {
value = value.substring(0,value.length()-1);
}
System.out.println(value);
} /**
* @param string 字符串
* @param charSet 判断的那个字符
* @return 出现次数
*/
static int count = 0; public static int getCount(String string, String charSet) {
int index = string.indexOf(charSet);
if (index == -1) {
return count;
} else {
count++;
String obj;
if (charSet.length() < string.length()) {
int a = string.indexOf(charSet);
obj = string.substring(a + charSet.length());
getCount(obj, charSet); } else {
return count;
}
}
return count;
}
//位置和排除的信息
static String strIndex = "";
static String otherStr = "";
public static String getIndex(String string, String charSet) {
int index = string.indexOf(charSet);
if (index == -1) {
return strIndex;
} else {
strIndex += (otherStr.length())+index+",";
String obj;
if (charSet.length() < string.length()) {
int a = string.indexOf(charSet);
obj = string.substring(a + charSet.length());
//过滤一次之后
otherStr += string.substring(0,a+charSet.length());
getIndex(obj, charSet);
} else {
return strIndex;
}
}
return strIndex;
}