hackertom Δημοσ. 4 Ιουνίου 2011 Δημοσ. 4 Ιουνίου 2011 Ξέρει κάποιος κάποιο site που να έχει έτοιμα παραδείγματα με java? Εκφωνήσεις / λύσεις;
Technology fan Δημοσ. 4 Ιουνίου 2011 Δημοσ. 4 Ιουνίου 2011 Αυτό έχει πολλά και πολύ χρήσιμα αλλα τα περισσότερα τα βρισκεις ψάχνοντας στο google ακριβώς με αυτό που θέλεις να κάνεις.. Τις περισσότερες φορές έχω βασιστεί επάνω σ αυτό το site, γι αυτό και το συστήνω.
hackertom Δημοσ. 4 Ιουνίου 2011 Μέλος Δημοσ. 4 Ιουνίου 2011 Βασικά ψάχνω αλά πράγματα πράξεις μεταξύ αλφαριθμητικών (π.χ. να κάνω μια συνάρτηση να δέχεται ένα αλφαριθμητικό και να επιστρέφει τα σύμβολα που είναι αριθμητικά (0-9) και όχι τα γράμματα...) και πράξεις μεταξύ μονοδιάστατων πινάκων (π.χ. μέσο όρο μεγαλύτερο μικρότερο...)
Technology fan Δημοσ. 5 Ιουνίου 2011 Δημοσ. 5 Ιουνίου 2011 Το δεύτερο είναι αρκετά εύκολο μπορείς να το κάνεις με μία διάσχιση του πίνακα, εκτός αν θέλεις να χρησιμοποιήσεις έτοιμες μεθόδους της κλάσης Array, που κατα πάσα πιθανότητα θα έχει κάτι έτοιμο, Όσο για το πρώτο δε κατάλαβα ακριβώς τι θέλεις να κάνεις.. Δέιξε ένα παράδειγμα με είσοδο και εξοδο...
hackertom Δημοσ. 5 Ιουνίου 2011 Μέλος Δημοσ. 5 Ιουνίου 2011 Στο πρώτο αυτό που θέλω να κάνω είναι : Π.Χ Είσοδος από το πληκτρολόγιο : Ab3*8E0@-+k6 Στην έξοδο να μου βγάζει μόνο τους αριθμούς :3 8 0 6 πρέπει να γίνεται με δυαδική αναζήτηση αν δεν κάνω λάθος άπλα θα το ήθελα να το δω σε ολοκληρωμένο πρόγραμμα η κάτι παρόμοιο
Kaka7 Δημοσ. 5 Ιουνίου 2011 Δημοσ. 5 Ιουνίου 2011 Οχι δεν χρειάζεται δυαδική αναζήτηση. Θα πάρει τους χαρακτήρες και θα τους ελέξχεις εναν εναν αν είναι αριθμός. Έχει νομίζω έτοιμη μέθοδο η java την isDigit() ( H υπογραφή της μεθόδου είναι boolean isDigit(char ch)) και όποτε σου επιστρέφει true θα περνάς τον αριθμό σε έναν πίνακα. Έτσι στον πίνακα θα έχεις μόνο τους αριθμούς.
hackertom Δημοσ. 5 Ιουνίου 2011 Μέλος Δημοσ. 5 Ιουνίου 2011 Χμμ.. κάτι τέτοιο δηλαδή είναι σωστό; >public class Main { public boolean checkIfNumber(String in) { try { Long.parseLong(in); } catch (NumberFormatException ex) { return false; } return true; } public static void main(String[] args) { Main main = new Main(); System.out.println( main.checkIfNumber("123") ); System.out.println( main.checkIfNumber("ABC") ); System.out.println( main.checkIfNumber("123123123123123") ); } } Υ.Γ. Μια βοήθεια για τα πώς να περνάω τους αριθμούς που είναι true σε πίνακα στον παραπάνω κώδικα?
Kaka7 Δημοσ. 5 Ιουνίου 2011 Δημοσ. 5 Ιουνίου 2011 Έτσι όπως έχεις φτιάξει την μέθοδο έστω και ένας χαρακτήρας αν βρεθεί που να μην είναι αριθμός θα επιστρέφει false. Εγώ θα την έφτιαχνα έτσι για να μου επιστρέψει σε ένα πίνακα όλους τους αριθμούς που θα έβρισκε στην συμβολοσειρά. > int numbers[]; //Δηλώνω τον πίνακα public static int [] IsNumeric(String s) { numbers=new int[s.length]; // Αρχικοποιώ τον πίνακα να έχει τόσες θέσεις όσο είναι το πλήθος των χαρακτήρων της συμβολοσειράς στην ακραία περίπτωση που όλοι οι χαρακτήρες είναι αριθμοί. if (s == null) return numbers; if (s.length() == 0) return numbers; for (int i = 0; i < s.length(); i++) { if (Character.isDigit(s.charAt(i)) numbers[i]=Integer.parseInt(Character.toString(s.charAt(i)) //Περνάω στον πίνακα τον αριθμό αφού πρώτα τον μετατρέψω από χαρακτήρα σε συμβολοσειρά και κατόπιν σε ακέραιο. } return numbers; //Σε κάθε περίπτωση επιστρέφω τον πίνακα. }
parsifal Δημοσ. 5 Ιουνίου 2011 Δημοσ. 5 Ιουνίου 2011 Βλέπω στο documentation της κλάσης String μία ενδιαφέρουσα μέθοδο, τη replaceAll: >public String replaceAll(String regex, String replacement) Replaces each substring of this string that matches the given regular expression with the given replacement. Δε θα ήταν πιο εύκολο να χρησιμοποιηθεί αυτή; Αρκεί να συνταχθεί ένα regular expression που να κάνει match όλους τους χαρακτήρες πλην των αριθμητικών ψηφίων. Και το replacement string να είναι κενό, προφανώς...
hackertom Δημοσ. 5 Ιουνίου 2011 Μέλος Δημοσ. 5 Ιουνίου 2011 Ευχαριστώ παιδιά για τις άμεσες απαντήσεις πάνω κάτω το κατάλαβα! Δηλαδή με το ίδιο σκεπτικό μπορώ να ελέγξω και αν ένας αριθμός είναι γραμμένος με μικρά και ένας με κεφαλαία και να το μετατρέπει από μόνο του σε κεφαλαία? Δηλαδή abcDEf --> ABCDEF Αλλάζει η συνάρτηση κάπως;
Γηρυόνης Δημοσ. 6 Ιουνίου 2011 Δημοσ. 6 Ιουνίου 2011 Η καλύτερη λύση είναι αυτή που προτείνει ο πάρσιφαλ, χρησιμοποίησε regular expressions για να κάνεις τη δουλειά σου. Π.χ. αν θέλεις να επιστρέψεις μόνο τους αριθμούς κάνεις το παρακάτω > String s = "Ab3*8E0@-+k6"; String a = s.replaceAll("[^0-9]", ""); System.out.println(a); Το παραπάνω μπορείς να το αλλάξεις για διαφορετικές λειτουργίες. Π.χ. αν θέλεις να βρεις μόνο τα γράμματα (κεφαλαία και μικρά) κάνεις > String s = "Ab3*8E0@-+k6"; String a = s.replaceAll("[^a-zA-Z]", ""); System.out.println(a); κοκ. Δηλαδή με το ίδιο σκεπτικό μπορώ να ελέγξω και αν ένας αριθμός είναι γραμμένος με μικρά και ένας με κεφαλαία και να το μετατρέπει από μόνο του σε κεφαλαία? Δηλαδή abcDEf --> ABCDEF Αλλάζει η συνάρτηση κάπως; Ένας αριθμός θα είναι πάντα γραμμένος σε μία μορφή, δεν υπάρχουνε μικροί και μεγάλοι αριθμοί. Προφανώς εννοείς τα γράμματα. Το καλύτερο που έχεις να κάνεις σε αυτή την περίπτωση είναι να χρησιμοποιήσεις την toLowerCase() ή την toUpperCase().
hackertom Δημοσ. 6 Ιουνίου 2011 Μέλος Δημοσ. 6 Ιουνίου 2011 Ευχαριστώ πολύ παιδιά!!! Μου λύθηκαν πολλές απορίες
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.