Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Herausforderung mit Java string.indexOf (https://www.delphipraxis.net/182169-herausforderung-mit-java-string-indexof.html)

barnti 6. Okt 2014 18:09

Herausforderung mit Java string.indexOf
 
Hallo zusammen,

ich versuche mit an einer Java.Aufgabe.

Code:
public static int INDEX(String string, String element) {
       int temp = -1;
       if (string == null || element == null)
          return -1;
       else
          temp = string.indexOf(element);
          System.out.println("String_1: " + string);
          System.out.println("Element: " + element);
          return temp;
Der output:
String1_: String_1, String_2
Element: String_1

und der Vergleich endet mit -1.

Kann mich jemand aufklären, was ich hier übersehe?

Der schöne Günther 6. Okt 2014 18:18

AW: Herausforderung mit Java string.indexOf
 
Nichts, du hast dich irgendwo vertippt (wie in deinem geposteten Ausschnitt mehrere male) - z.B. in deinem String "Element" " String_1" stehen statt "String_1" oder so etwas.

Code:
MeinBeispiel.INDEX("String_1, String_2", "String_1")
liefert für mich ganz normal
Delphi-Quellcode:
0
.

barnti 6. Okt 2014 18:58

AW: Herausforderung mit Java string.indexOf
 
Hallo Günther,

danke für Dein Feedback. Die Tipper habe ich korrigiert, sorry dafür. Nein, an den Tippern liegt es nicht. Vielleicht hat es etwas mit der Codierung der Strings zu tun? In den Ausgaben sehen die Strings gleich aus. Ich bekomme aber trotzdem ein -1 zurück.

dGeek 6. Okt 2014 19:26

AW: Herausforderung mit Java string.indexOf
 
Hi!

Kleiner Tippfehler: System.out.println("String_1: + "string);

Folgendermaßen funktioniert es:
Code:
public static int INDEX(String string, String element) {
  int temp = -1;
     
  if (string == null || element == null)
    return -1;
  else {
    temp = string.indexOf(element);
    System.out.println("String_1: " + string);
    System.out.println("Element: " + element);
  }
     
  return temp;
}
 
public static void main (String[] args) {
  System.out.println("temp: " + INDEX("String_1, String_2", "String_1"));
}
Ergibt:
Zitat:

String_1: String_1, String_2
Element: String_1
temp: 0

barnti 6. Okt 2014 19:37

AW: Herausforderung mit Java string.indexOf
 
Ok,

danke auch den Tipper habe ich beseitigt. Ändert leider nichts an dem Ergebnis: temp = -1

Der schöne Günther 6. Okt 2014 19:41

AW: Herausforderung mit Java string.indexOf
 
Wir sind trotzdem zwei gegen einen 8-). Groß/Kleinschreibung der reingesteckten Strings vielleicht?

Kannst du einmal ein minimales, lauffähiges Programm einstellen?

Dejan Vu 6. Okt 2014 19:45

AW: Herausforderung mit Java string.indexOf
 
Na, woran wird es dann wohl liegen? Also wenn ein Programm eigentlich läuft, nur bei Dir nicht? Vielleicht doch an den Eingabedaten? Versuch es mal mit 'A' und 'A B' und dann, indem Du den Inhalt des einen Strings mit Copy&Paste in den anderen kopierst...

barnti 6. Okt 2014 20:36

AW: Herausforderung mit Java string.indexOf
 
Hallo Dekan Vu,

danke für Deine Anregung. Ja, davon gehe ich auch aus. Der Code zeigt ein Beispiel. Für einige der Daten aus meinem Spreadsheet funktioniert es für andere nicht. Daher die Anmerkung/Frage, ob es vielleicht etwas mit der Codierung des Strings (Element) zu tun hat.

barnti 6. Okt 2014 22:16

AW: Herausforderung mit Java string.indexOf
 
Hallo,

ich habe meinen Code geändert und statt indexOf verwende ich contains. Damit funktioniert es. Verstanden habe ich es nicht...

Danke!

dGeek 6. Okt 2014 22:41

AW: Herausforderung mit Java string.indexOf
 
Zitat:

Zitat von barnti (Beitrag 1275031)
Hallo,

ich habe meinen Code geändert und statt indexOf verwende ich contains. Damit funktioniert es. Verstanden habe ich es nicht...

Danke!

So anzufangen ist nicht gut ;) Fehler muss man suchen und den Grund für die nicht-Funktionalität verstehen.

Hier ein funktionierender Code:
Code:
/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
   public static int INDEX(String string, String element) {
        int temp = -1;
     
        if (string == null || element == null)
          return -1;
        else {
          temp = string.indexOf(element);
          System.out.println("String_1: " + string);
          System.out.println("Element: " + element);
        }
     
        return temp;
   }
   
   public static void main (String[] args) throws java.lang.Exception {
      String sInput = "";
      BufferedReader aInputBuffer = new BufferedReader(new InputStreamReader(System.in));
      
      System.out.print("Bitte String eingeben: ");
      sInput = aInputBuffer.readLine();
 
      System.out.println("Ergebnisse");
      System.out.println("temp: " + INDEX("String_1, String_2", sInput));
   }
}


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz