ABA


"לא מצליח לבדוק אם char מסויים קיים בתוך string בג'אווה... שאלה הכי פשוטה בעולם"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #21542 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21542
TooBigToFail
חבר מתאריך 12.5.14
1917 הודעות, 1 פידבק, -2 נקודות
   01:03   29.12.15   
אל הפורום  
  לא מצליח לבדוק אם char מסויים קיים בתוך string בג'אווה... שאלה הכי פשוטה בעולם  
 
   לא מבין למה אין שום דרך פשוטה לעשות את זה.. כל מה שאני מנסה זורק לי שגיאה

המתודה contains יכולה לקבל רק CharSequence, ואני רוצה לבדוק מול char אז זה לא מתאים.
המתודה indexOf מחזירה -1 אם הstring לא קיים בstring, והיא לא יכולה לקבל char. כמובן שגם אי אפשר לעשות cast מCHAR לSTRING

בקיצור כבר השתגעתי מהדבר הכי פשוט בעולם.




Scanner in = new Scanner(System.in);
String S = in.next();

StringBuilder abcStr = new StringBuilder();
char letter;
for (int i=0; i<S.length(); i++){
letter = S.toLowerCase().charAt(i);
if (S.toLowerCase().contains(letter)==false) //letter does not exist in the S string
abcStr.append(letter);
}


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  תשתמש ב charAt hank_mudy 29.12.15 01:34 1
     זה מקבל רק אינט ומחזיר מיקום.. אני צריך לבדוק נוכחות של צ'אר TooBigToFail 29.12.15 01:37 2
         לא הבנתי מה אתה עושה בתוך הלולאה... hank_mudy 29.12.15 01:38 3
             בif תחליף את הS בabcStr TooBigToFail 29.12.15 01:46 5
                 כנס, hank_mudy 29.12.15 01:51 6
                     אני לא מחפש אלגוריתם אחר, אלא משהו מאוד פשוט TooBigToFail 29.12.15 14:08 7
                         מקווה שזה מה שחיפשת Mad Hatter 29.12.15 14:52 8
         אתה כל פעם מכניס אות מהמילה למשתנה letter ואז אתה רוצה לבדוק אם הוא קיים במילה hank_mudy 29.12.15 01:43 4
  תהנה aCoZz  29.12.15 21:03 9
     עובד לך? לי זה אומר שאינדקסאוף לא מקבל משתנה char TooBigToFail 29.12.15 21:13 10
         עובד עובד... פשוט תעשה CASTING ל INT aCoZz  29.12.15 21:25 11
             אי אפשר זה זורק שגיאה TooBigToFail 30.12.15 00:55 13
  אתה יכול להשתמש במחלקת wrapper של char, למשל: IDAN_500  29.12.15 22:21 12
     יפה זה כבר הפסיק לזרוק שגיאת קומפילציה TooBigToFail 30.12.15 01:04 14
  אם אני מבין את השאלה... roey 30.12.15 02:29 15
     ואני לא יודע איך עושים חלון קוד אשמח ללמוד :] roey 30.12.15 02:30 16
  אם מישהו מעוניין בקוד הסופי שעובד TooBigToFail 30.12.15 23:21 17
     נסה להחליף את הקוד באמצע עם משהו כזה: ldan192  30.12.15 23:53 18
         ותאכלס ראיתי שמה שאתה צריך זה רק אורך, אז אפילו יותר קל זה ldan192  01.01.16 02:11 21
             בסדר אבל מה לי ולjava 8 TooBigToFail 01.01.16 18:48 23
  לא הבנתי מה הסיבוך Battousai  01.01.16 01:49 19
     למה אני עונה על זה בשתיים בלילה ? ? ! ! Battousai  01.01.16 01:55 20
     עם סוגריים מרובעים ועם המילה code ביניהם TooBigToFail 01.01.16 18:46 22
         נראה אם עובד Battousai  02.01.16 19:47 24
         בדיקה roey 02.01.16 20:48 25

       
hank_mudy
חבר מתאריך 28.8.12
1186 הודעות, דרג אמינות חבר זה
   01:34   29.12.15   
אל הפורום  
  1. תשתמש ב charAt  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TooBigToFail
חבר מתאריך 12.5.14
1917 הודעות, 1 פידבק, -2 נקודות
   01:37   29.12.15   
אל הפורום  
  2. זה מקבל רק אינט ומחזיר מיקום.. אני צריך לבדוק נוכחות של צ'אר  
בתגובה להודעה מספר 1
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hank_mudy
חבר מתאריך 28.8.12
1186 הודעות, דרג אמינות חבר זה
   01:38   29.12.15   
אל הפורום  
  3. לא הבנתי מה אתה עושה בתוך הלולאה...  
בתגובה להודעה מספר 2
 
   מה ה- char שאתה רוצה לבדוק?
הרי יש לך את הסטרינג שהמשתמש מכניס. מאיפה מגיע ה-char שאתה רוצה לבדוק?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TooBigToFail
חבר מתאריך 12.5.14
1917 הודעות, 1 פידבק, -2 נקודות
   01:46   29.12.15   
אל הפורום  
  5. בif תחליף את הS בabcStr  
בתגובה להודעה מספר 3
 
   זאת טעות בקוד.. הרעיון הוא להכניס את כל הא-ב' לסטרינג ובסוף לבדוק אם הוא באורך 26, אז אני יודע שזה הכיל את כל הא-ב' האנגלי


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hank_mudy
חבר מתאריך 28.8.12
1186 הודעות, דרג אמינות חבר זה
   01:51   29.12.15   
אל הפורום  
  6. כנס,  
בתגובה להודעה מספר 5
 
   למה שלא תכניס את כל האותיות ואחר כך תבדוק אם הסטרינג הוא באורך 26. במידה ולא, תבצע את הבדיקה של איזו אות חסרה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TooBigToFail
חבר מתאריך 12.5.14
1917 הודעות, 1 פידבק, -2 נקודות
   14:08   29.12.15   
אל הפורום  
  7. אני לא מחפש אלגוריתם אחר, אלא משהו מאוד פשוט  
בתגובה להודעה מספר 6
 
   איך לחפש תו בתוך סטרינג עם הספרייה של ג'אווה

לא הגיוני שזה לא קיים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Mad Hatter
חבר מתאריך 19.12.15
1421 הודעות, 2 פידבק, 0 נקודות
   14:52   29.12.15   
אל הפורום  
  8. מקווה שזה מה שחיפשת  
בתגובה להודעה מספר 7
 
כתבתי לך קוד שמדגים את זה בקלות
http://pastebin.com/s5CDtX9m


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hank_mudy
חבר מתאריך 28.8.12
1186 הודעות, דרג אמינות חבר זה
   01:43   29.12.15   
אל הפורום  
  4. אתה כל פעם מכניס אות מהמילה למשתנה letter ואז אתה רוצה לבדוק אם הוא קיים במילה  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
aCoZz 
חבר מתאריך 19.7.06
17692 הודעות, דרג אמינות חבר זה
   21:03   29.12.15   
אל הפורום  
  9. תהנה  
בתגובה להודעה מספר 0
 
  


String str = "abababababa";
char letter = 'a';
int index = str.indexOf(letter);
if(index >= 0 )
{
System.out.println("true");
}



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TooBigToFail
חבר מתאריך 12.5.14
1917 הודעות, 1 פידבק, -2 נקודות
   21:13   29.12.15   
אל הפורום  
  10. עובד לך? לי זה אומר שאינדקסאוף לא מקבל משתנה char  
בתגובה להודעה מספר 9
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
aCoZz 
חבר מתאריך 19.7.06
17692 הודעות, דרג אמינות חבר זה
   21:25   29.12.15   
אל הפורום  
  11. עובד עובד... פשוט תעשה CASTING ל INT  
בתגובה להודעה מספר 10
 
   הפונקציה מקבלת UNICODE ככה תעביר את ה CHAR ל ASCII שלו


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TooBigToFail
חבר מתאריך 12.5.14
1917 הודעות, 1 פידבק, -2 נקודות
   00:55   30.12.15   
אל הפורום  
  13. אי אפשר זה זורק שגיאה  
בתגובה להודעה מספר 11
 
   ערכתי לאחרונה בתאריך 30.12.15 בשעה 01:00 בברכה, TooBigToFail
 
reason: actual argument int cannot be converted to CharSequence by method invocation conversion


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
IDAN_500 
חבר מתאריך 11.12.03
2321 הודעות, דרג אמינות חבר זה
   22:21   29.12.15   
אל הפורום  
  12. אתה יכול להשתמש במחלקת wrapper של char, למשל:  
בתגובה להודעה מספר 0
 
   הקוד הבא יעבוד:

String stringToTest = "awesome string to test";
Character charToSearch = 'e';

System.out.println(stringToStest.indexOf(charToSearch)); // 2


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TooBigToFail
חבר מתאריך 12.5.14
1917 הודעות, 1 פידבק, -2 נקודות
   01:04   30.12.15   
אל הפורום  
  14. יפה זה כבר הפסיק לזרוק שגיאת קומפילציה  
בתגובה להודעה מספר 12
 
   עכשיו יש בעיה באלגוריתם שאני צריך לבדוק אבל מחר :|

תודה!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
roey
חבר מתאריך 17.5.04
1039 הודעות, דרג אמינות חבר זה
   02:29   30.12.15   
אל הפורום  
  15. אם אני מבין את השאלה...  
בתגובה להודעה מספר 0
 
   כעיקרון ממש לא מומלץ להשתמש בשווה אלא ב
equals
אבל זרום איתי ומאוחר...וב
JAVA
7
ומעלה זה יעבוד...


public static boolean func(String str, char chr) {
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == chr) {
return true;
}
}
return false;
}
}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
roey
חבר מתאריך 17.5.04
1039 הודעות, דרג אמינות חבר זה
   02:30   30.12.15   
אל הפורום  
  16. ואני לא יודע איך עושים חלון קוד אשמח ללמוד :]  
בתגובה להודעה מספר 15
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TooBigToFail
חבר מתאריך 12.5.14
1917 הודעות, 1 פידבק, -2 נקודות
   23:21   30.12.15   
אל הפורום  
  17. אם מישהו מעוניין בקוד הסופי שעובד  
בתגובה להודעה מספר 0
 
   תודה לכל מי שעזר. בסוף הייתי צריך להשתמש בtoString() של הStringBuilder שיש לי בשביל להשתמש במתודות של סטרינג... טריק נחמד



import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class SolutionPangrams {

public static void main(String args) {
Scanner in = new Scanner(System.in);
String S = in.nextLine();

StringBuilder abcStr = new StringBuilder();
Character letter;
for (int i=0; i<S.length(); i++){
letter = S.toLowerCase().charAt(i);
if (Character.isAlphabetic((int)letter)==false) continue; //skip spaces.
if (abcStr.toString().indexOf(letter)==-1) //letter does not exist in the abcStr string
abcStr.append(letter);
}

if (abcStr.length()==26) System.out.println("pangram");
else System.out.println("not pangram");

}
}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   23:53   30.12.15   
אל הפורום  
  18. נסה להחליף את הקוד באמצע עם משהו כזה:  
בתגובה להודעה מספר 17
 

S.chars().distinct().mapToObj(c->String.valueOf((char)c).collect(Collectors.joining())


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   02:11   01.01.16   
אל הפורום  
  21. ותאכלס ראיתי שמה שאתה צריך זה רק אורך, אז אפילו יותר קל זה  
בתגובה להודעה מספר 18
 
()S.chars().distinct().count
לא בטוח איך אתה אמור לטפל ב-lower/upper case אבל מקס׳ אפשר לקרוא ל-S.toLowerCase()


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TooBigToFail
חבר מתאריך 12.5.14
1917 הודעות, 1 פידבק, -2 נקודות
   18:48   01.01.16   
אל הפורום  
  23. בסדר אבל מה לי ולjava 8  
בתגובה להודעה מספר 21
 
  
טוב לדעת שיש דרך קלה יותר לכתוב את זה.. כנראה אני אגיע לזה מתישהו בהמשך


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Battousai 
חבר מתאריך 4.8.06
1725 הודעות, דרג אמינות חבר זה
   01:49   01.01.16   
אל הפורום  
  19. לא הבנתי מה הסיבוך  
בתגובה להודעה מספר 0
 
   בנוסף למה לעשות lowercase ?
A זה לא אותו Character כמו a

הנה קוד שעובד :

public class Program {
public static void main(String args) {
String myString="this_is_my_string_to_check";
Character myChar='a';

Boolean isFound=false;

int i=0;
while (i<myString.length() && !isFound) {
if (myChar.equals(myString.charAt(i)))
isFound=true;
i++;
}

System.out.println(isFound?"found":"not found");
}
}

ואיך עושים את המשבצת קוד הזאת ???


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Battousai 
חבר מתאריך 4.8.06
1725 הודעות, דרג אמינות חבר זה
   01:55   01.01.16   
אל הפורום  
  20. למה אני עונה על זה בשתיים בלילה ? ? ! !  
בתגובה להודעה מספר 19
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TooBigToFail
חבר מתאריך 12.5.14
1917 הודעות, 1 פידבק, -2 נקודות
   18:46   01.01.16   
אל הפורום  
  22. עם סוגריים מרובעים ועם המילה code ביניהם  
בתגובה להודעה מספר 19
 
   וכדי לסגור את הקוד אתה שם את המילה /code ביניהם
ואם תלחץ על הכפתור מתחת לתגובה "תגובה עם ציטוט" אתה תראה את זה

בכל אופן, המטרה של התוכנית היא לוודא שכל האותיות מa עד z מופיעות בSTRING שמכניסים (מה שנקרא pangram)

אני חיפשתי מתודה נוחה בjava לעשות את זה. ברור שיכולתי ליישם את זה בעצמי אבל זה היה נראה לי הזוי שאין שום דרך לעשות את זה בקוד קצר, הרי זה חלק מהנוחות של java

והחלק של הlowercase כנראה מיותר כי לא הבנתי נכון חלק מהשאלה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Battousai 
חבר מתאריך 4.8.06
1725 הודעות, דרג אמינות חבר זה
   19:47   02.01.16   
אל הפורום  
  24. נראה אם עובד  
בתגובה להודעה מספר 22
 
  

תודה !


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
roey
חבר מתאריך 17.5.04
1039 הודעות, דרג אמינות חבר זה
   20:48   02.01.16   
אל הפורום  
  25. בדיקה  
בתגובה להודעה מספר 22
 
  
 


בודק גם תודה :]




                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net