dzielenie stringów

0

Witam

jak w javie zrobić dzielenie ciągu znaków wg. określonych kryteriów...
coś jak explode w php mnie interesuje,

np. mam ciąg znaków JESTEM GRUBY OLEK i chce wyciągnąć tylko wyraz GRUBY (np. po spacjach -> wyraz po pierwsze spacji)

pozdrawiam

0

http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html

tu masz cala klase String - na pewno znajdziesz to czego potrzebujesz :-)

0

To Java, skorzystaj z gotowych klocków ;-)

http://jakarta.apache.org/commons/lang/

pzdr,
y..

0

Poczytaj o StringTokenizer na
http://java.sun.com/j2se/1.4.2/docs/api/

a ponizej krotki przyklad zebys mogl zobaczyc czy o to ci chodzi:

String strTekst = "JESTEM GRUBY OLEK";
StringTokenizer st = new StringTokenizer(strTekst, " ");

if (st.hasMoreTokens())
{
   System.out.println(st.nextToken());
}

Wynik:
JESTEM
GRUBY
OLEK

0

PHP ma dwie funkcje dzielenia string'a:

explode(), split()

Klasa string takze posiada metode split()... zacznijcie czytac manual (najwiekszy plus javy)

0

em1x!!! Nie katuj mlodziezy split'em z klasy String, tam trzeba zastosowac wyrazenia regularne, a wiekszosc (90%) normalnych ludzi nawet nie wie co to jest (a ci co wiedza to tez w wiekszosci przed tym uciekaja) piszesz sobie w PHP? Ok stosuj sobie swoje wyrazenia regularne (Ja stosuje tylko wtedy kiedy musze). A StringTokenizer zostal stworzony wlasnie po to by dzielic ciagi znakowe na mniejsze elementy i separatorem wcale nie musi byc Spacja - moze byc cokolwiek innego (znak, ciag znakowy). Wniosek? Prosciej, latwiej, przyjemniej. Poza tym uzywajac split'a musisz wiedziec jakiej wielkosc zadeklarowac tablice do ktorej powedruja podzielone elementy, a w StringTokenizer'ze masz kontener ktory przechowuje dowolna ich ilosc! Zreszta, niech sobie kazdy stosuje to co chce, ja jednak goraco polecam StringTokenizer.

0

Co musze wiedziec? :D nic nie musze wiedziec, od tego zacznijmy

String txt = "aabbccbbeehh";

// cos mowiles?
String[] tablica = txt.split("bb");

// rozmiar tez znamy
int size = tablica.length;

czy ja komus kaze katowac regex'a?

0
em1x napisał(a)

String[] tablica = txt.split("bb");



Warto dodać że <i>split</i> występuje dopiero od wersji 1.4, co w niektórych sytuacjach może okazać się krytycznym założeniem  :) 

Ja nadal polecam pakiet <i>commons.lang</i> z Jakarta Project.  Przykład praktyczny to obróbka pliku w formacie CSV, w którym część rekordów jest postaci:
<i>col1<sub>,col4</sub>,,,</i>, czyli posiadają pewną ilość pustych kolumn.  Jak teraz sprawnie podzielić to na tablicę wartości używając `split`, tak by puste kolumny zostały zachowane ? :) W comons-lang-2.1 jest do tego `splitPreserveAllTokens`.

pzdr,
y.
0

Witam serdecznie,
od dwoch dni probuje zrobic nastepujace zadanie :

3 (TRUDNIEJSZE). Dany jest tekst (przechowywany w zmiennej typu String):
An applet is any small application that performs one specific task; sometimes running within the context a larger program perhaps as a plugin.[1][2] However, the term typically also refers to programs written in the Java programming language which are included in an HTML page.

Napisz programik wypisujący ten tekst po 40 znaków w wierszu, z wyrównaniem do lewej (bez łamania wyrazów).

[diabel] wiem co to string tokenizer, ale cos sie wiecznie wysypuje jak wklejam cos co znalazlem w internecie. Chcialem sam skleic, zrobić, ale no już mnie takie nerwy biora, nic nie chce dzialac.
A przykladow jak podzielic na ilestam znakow na linijke nie ma. Manuala javy tez czytalem [???] [???]

Moze ktos to zrobic, dla Was to pestka :-/ [browar]

0

Kiepsko szukasz, kilka dni temu umieściłem na forum kod jak dzielić String na kawałki po 30 znaków.

0

dzieki za pomoc..
spieszylem sie do pracy ;)

0

fajnie, szkoda tylko ze Ty bardzo duuuzo umieszczasz kodow, ciezko znalezc za pomoca szukajki:/

0

Dzielenie po 40 znaków z wyrównaniem do lewej i bez dzielenia wyrazów:

String str = "An applet is any small application that performs one specific task; sometimes running within the context a larger program perhaps as a plugin.[1][2] However, the term typically also refers to programs written in the Java programming language which are included in an HTML page."; 
StringTokenizer tokenizer = new StringTokenizer(str, " ");
int printedInLine = 0;
while (tokenizer.hasMoreTokens()){
	String token = tokenizer.nextToken();
	if (token.length() + printedInLine + 1 > 40){
		printedInLine = 0; 
		System.out.println();
	} 
	
	if (printedInLine > 0){
		printedInLine++;
		System.out.print(" ");
	}
	
	printedInLine += token.length();
	System.out.print(token);
}

Wynik:

An applet is any small application that
performs one specific task; sometimes
running within the context a larger
program perhaps as a plugin.[1][2]
However, the term typically also refers
to programs written in the Java
programming language which are included
in an HTML page.
0

WIELKIE DZIEKI :))) ! ! !

0

Jak podzielic string postaci "maleWielkie" (bez utraty W) ?

0

Chcesz podzielić:
a) ten konkretny String?
b) dowolny String, w którym jest jedna duża litera?
c) dowolny String, w którym jest pewna ilość dużych liter?
np "NauczęSięZadawaćPrecyzyjnePytania" => {"Nauczę","Się","Zadawać","Precyzyjne","Pytania"}

0

odp. D
string rozpoczynajacy sie mala litera, a pozniej kazde slowo pisane wielka <- jak np. nazwy metod.

0

Może mało wydajne, ale działa.

        String s="takiSobiePokręconyŚwiat";
        String[] letters={"A","Ą","B","C","Ć","D","E","Ę","F","G","H","I","J","K","L","Ł","M","N","Ń","O","Ó","P","Q","R","S","Ś","T","U","V","W","X","Y","Z","Ż","Ź"};
        for(int i=0;i<letters.length;i++)
        {
            s=s.replaceAll(letters[i]," "+letters[i]);
        }
        String[] result=s.split(" ");
0
public class StringUtils {

    public List<String> readWords(String text) {
        final List<String> result = new ArrayList<String>();
        final char[] chars = text.toCharArray();
        final StringBuilder buffer = new StringBuilder();
        boolean isWhitespace = false;
        for (char c : chars) {
            if (Character.isWhitespace(c) && isWhitespace) {
                continue;
            }
            isWhitespace = Character.isWhitespace(c);
            if (isWhitespace || Character.isUpperCase(c)) {
                if (buffer.length() > 0) {
                    result.add(buffer.toString());
                }
                buffer.setLength(0);
            }
            if (!isWhitespace) {
                buffer.append(c);
            }
        }
        if (buffer.length() > 0) {
            result.add(buffer.toString());
        }
        return result;
    }

    public static void main(String[] args) {
        final StringUtils utils = new StringUtils();
        System.out.println(utils.readWords("AlaMaKota"));
        System.out.println(utils.readWords("Bla232   xBla bla      \n  bla"));
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1