Date un pò un occhiata . Il mio scopo è quello di creare un metodo che inserisca una stringa in MSH tra due || individuati dall 'indice.
Questo viene fatto con un metodo che ho chiamato Add. Le mie perplessità sono due :

1) Quando inizializzo la Stringa MSH in Add mi si presenta con null perchè?

2) Se dovessi riuscire ad iserire la stringa un ulteriore operazione
di Add mi farebbe perdere quella precedente?


// Package HL7

package hl7.pkg;
import java.net.*;
import java.io.*;
import java.lang.*;


public class MessageHL7 {
boolean flag= true;
private static String QRD = "QRD|||||||||||||/n";
private String QRF = "QRF|||||||||||/n";
public String fields = "" ;
private char delim = '|' ;
private char run = ' ';
private char run_succ=' ';
public static String MSH;

//inizializza i campi
public void MessageHL7()
{
String MSH = "MSH|^~\\&||||||||||||||||||||/n";
}


// Metodo

public String Add(String message , String field , int pos ) {
int num_sep=0;
// inserire swicht
System.out.println(message+field+pos);
if( message.equals("MSH"))
message=MSH;
int posizione = 0;

while (flag==true)
{
run = message.charAt(posizione);
System.out.println("il carattere prelevato è " +run);
if ( run==delim)
{
num_sep++;
run_succ=message.charAt(posizione+1);
if (run_succ==delim && num_sep==pos )
{
String destra = message.substring(posizione+1);
String sinistra = message.substring(0,posizione);
message = sinistra+field+destra;
MSH=message;
flag=false;
}
else if (run_succ==delim && num_sep==pos ) flag=false;
System.out.println("Campo già esistente o non desiderato");


}
posizione++;
}

return message;
}
}
/* @(#)Clientadt.java 1.0 04/04/12 */

import hl7.pkg.*;
import java.net.*;
import java.io.*;
public class Clientadt {

public static void main(String argv[]) {
try
{
String segmento = new String ();
MessageHL7 hl7 = new MessageHL7 ();
segmento = hl7.Add("MSH","CUP",2);
segmento = hl7.Add("MSH","Ciccione",4);
System.out.println (" Il segmento è " + segmento);
}
....