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
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
http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html
tu masz cala klase String - na pewno znajdziesz to czego potrzebujesz :-)
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
PHP ma dwie funkcje dzielenia string'a:
explode(), split()
Klasa string takze posiada metode split()... zacznijcie czytac manual (najwiekszy plus javy)
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.
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?
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.
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]
Kiepsko szukasz, kilka dni temu umieściłem na forum kod jak dzielić String na kawałki po 30 znaków.
dzieki za pomoc..
spieszylem sie do pracy ;)
fajnie, szkoda tylko ze Ty bardzo duuuzo umieszczasz kodow, ciezko znalezc za pomoca szukajki:/
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.
WIELKIE DZIEKI :))) ! ! !
Jak podzielic string postaci "maleWielkie" (bez utraty W) ?
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"}
odp. D
string rozpoczynajacy sie mala litera, a pozniej kazde slowo pisane wielka <- jak np. nazwy metod.
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(" ");
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"));
}
}