Skip to Main Content

Java Programming

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Roman Numerals in a java string

807589Jun 18 2008 — edited Jul 11 2008
Hi,
I want to check a string whether it contains roman numerals and if yes replace it with another character.I wrote a sample program given below.

public class test2{
public static void main(String s[]){
String string="XVdummyCDBankIMName ";
String oldchar1="X";
String oldchar2="V";
String oldchar3="I";
String oldchar4="C";
String oldchar5="D";
String oldchar6="M";
String oldchar7="L";
int numChar=string.length();
char[] charArray=new char[numChar];
string.getChars(0, numChar, charArray,0);
int i=0,flag=0;
String space=" ";
System.out.println("Your String before repalce\n"+string);
while(i<charArray.length)
{

if(charArray==oldchar1.charAt(0) ||charArray[i]==oldchar2.charAt(0) || charArray[i]==oldchar3.charAt(0) || charArray[i]==oldchar4.charAt(0) || charArray[i]==oldchar5.charAt(0) || charArray[i]==oldchar6.charAt(0) || charArray[i]==oldchar7.charAt(0))
{
charArray[i]=space.charAt(0);
flag=1;
}
i++;
}
if(flag==1)
{
System.out.println("\n String after repalcing roman numerals with space");
String newString=new String(charArray);
System.out.println("==="+newString+"\n\n char has been replaced");
}
if(flag==0)
{
System.out.println("\nThe char not found");
}
}
}


I am trying replace I,X,V,C,D,M,L with space since these 6 characters I,X,V,C,D,M,L join to form Roman numbers. right?

e.g.if
string="XVdummyCDBankIMName ";

then it will give output as

dummy Bank Name

with two spaces before word starts.
output will be: "two spaces"dummy"two spaces"Bank"two spaces"Name



this is correct replacement but.what my question is suppose,
my string is string="XVDUMMYCDBANKIMNAME ";



in this case if i will search for I,X,V,C,D,M,L and will replace with space. it will give me "3 spaces"+U+"two spaces"+Y+"two space"+BANK+"two spaces"+NA+"one space+"E.


it will consider M as a roman character and we can lose data in this case.

Please tell me is there any special character which denote the roman numeral for which I can make a replacement without losing necessary data......

Please help
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 8 2008
Added on Jun 18 2008
18 comments
2,793 views