http://topic.csdn.net/u/20111204/15/308e9568-0c8a-4e99-bfb8-6af355d3ccc9.html?83301

解决方案 »

  1.   

    发错了
    http://zhidao.baidu.com/question/337744781.html
      

  2.   


    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;
        }
      

  3.   

    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);
    }
    }
    }
    }
      

  4.   

    多看看java  API 中的String 你肯定能自己写出来的。加油!!!
      

  5.   

    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;
    }
    }
      

  6.   

    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;
    }}
    }
    这还是三楼的那个代码,只是稍微改了一下,求解:怎么让输入的字符串不在第一次输入的之内,然后光标返回要求重新输入字符串呢?
      

  7.   


    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);
    }
    }
    }
      

  8.   


    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);
    }
    }
    }
      

  9.   

    我用递归写了一个,这样效率能好一点,也挺简单。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);
        }
    }
    }
      

  10.   


    find方法第一个参数是数符串,第二个是要找的那个子字符串,第三个是从哪个位置开始查找,0就是表示从下标为0的位置找。
      

  11.   

    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;
    }
      

  12.   

    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;
    }