در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

aliclair

کد پیدا کردن کوتاه ترین کلمه در یک جمله به زبان جاوا

سلام من یک برنامه جاوا می‌خوام بنویسم که rekursiv باشه و از لوپ استفاده نشه ، باید این متود رو داشته باشه و کوتاه‌ترین کلمه رو در هر جمله پیدا کنه و بیرون بده

;(List<String> words = getShortestWords("Dies ist nur ein dummes Beispiel"

;(System.out.println(words);

// => [ist, nur, ein]

من بدون لوپ نمیتونم ، کسی‌ میتونم منو کمک کنه؟

لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.

سلام

این کدی هستش که من نوشتم البته شاید طولانی شده باشه ولی به نظرم قابل فهم باشه حالا اگه سوالی داشتین بپرسید

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * Created by Mehdi on 12/19/2016.
 */
public class Recursive {
    public static void main(String[] args){
        String string="Dies ist nur ein dummes Beispiel";
        List<String> list=getShortestWords(string);
       Object[] result=  list.toArray();
        System.out.println(Arrays.toString(result));
    }

    private static List<String> getShortestWords(String string) {
        String[] strs=string.split(" ");
        return rec(strs,strs[0],1);
    }

    private static List<String> rec(String[] strs, String str,int index) {
        List<String> st= new ArrayList<>();
        if(index==strs.length)
            return  st;
        if(str.length()>strs[index].length()) {
            st.add(strs[index]);
            st.addAll( rec(strs, strs[index], index + 1));
            return st;
        }
        else if(str.length()<strs[index].length()){
            List<String> stringList = rec(strs, str, index + 1);
            if(stringList.size()>0 && stringList.iterator().next().length()<str.length())
                return stringList;
            else {

                st.addAll(stringList);
                return st;
            }
        }
        else {
            st.add(str);
            st.addAll(rec(strs,strs[index],index+1));
            return st;
        }

    }
}

کدی که نوشتم کل برنامه هستش

سرنوشت ما با افکارمان تغییر می کند؛ اگر افکارمان همیشه مطابق با خواسته هایمان باشند، همان چیزی می شویم که آرزو داریم و همان کاری را می کنیم که می خواهیم

این پست توسط مهدی عادلی در تاریخ دوشنبه, 29 آذر 1395 حذف شده است.

دلیل: لطفا برای تایپ از حروف فارسی استفاده کنید

این پست توسط مهدی عادلی در تاریخ دوشنبه, 29 آذر 1395 حذف شده است.

دلیل: لطفا برای تایپ از حروف فارسی استفاده کنید

aliclair

آقا ممنون اما در کنسول به جای این[ist, nur, ein]

این میاد [ist, ist, ein]

شکل اصلاح شده برنامه

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * Created by Mehdi on 12/19/2016.
 */
public class Recursive {
    public static void main(String[] args){
        String string="Dies ist a nurce ein q dummes Beispiel";
        List<String> list=getShortestWords(string);
       Object[] result=  list.toArray();
        System.out.println(Arrays.toString(result));
    }

    private static List<String> getShortestWords(String string) {
        String[] strs=string.split(" ");
        String shortestString=findShortest(strs,strs[0],1);
        return rec(strs,shortestString,0);
    }

    private static String findShortest(String[] strs, String str, int i) {
        if(i==strs.length)
            return str;
        if(strs[i].length()<str.length())
            return findShortest(strs,strs[i],i+1);
        else return findShortest(strs,str,i+1);
    }

    private static List<String> rec(String[] strs, String str,int index) {
        List<String> sts=new ArrayList<>();
        if(index==strs.length)
            return sts;
      if(strs[index].length()==str.length())
      {
          sts.add(strs[index]);}


         sts.addAll(rec(strs,str,index+1));
        return sts;
    }
}

کد تصحیح شده و آسان تر شده قسمت بالا

سرنوشت ما با افکارمان تغییر می کند؛ اگر افکارمان همیشه مطابق با خواسته هایمان باشند، همان چیزی می شویم که آرزو داریم و همان کاری را می کنیم که می خواهیم
aliclair

ببخشید اما تو نسخه تصحیح شده فقط یه حرف اگر تو جمله باشه پس میده

اگه بیشتر از یک حرف هم با شه مشکلی نداره

سرنوشت ما با افکارمان تغییر می کند؛ اگر افکارمان همیشه مطابق با خواسته هایمان باشند، همان چیزی می شویم که آرزو داریم و همان کاری را می کنیم که می خواهیم
aliclair

اما من وقتی‌ تست می‌کنم string خالی‌ میاد

aliclair

درست شد ممنون خیلی‌ کمک کردی

aliclair

الان اگر ۲ این مثل Dies ist so ein dummes Beispiel رو امتحان کنم باید در اصل فقط کلمه [so]

به عنوان نتیجه بیرون بیاد اما ۲ کلمه das و so میاد

aliclair

وب سایت توسینسو

پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....