Problema with strings as parameters
I'm facing a curious problem. I have already downloaded a few classes that encode special characters into html entities. All of them receive a string paramter and return the encoded string.
The problem is that if i pass an actual string as paramater, the result is ok. But if i pass a string variable as parameter, the functions don't work.
I mean, if i use this:
String str = HTMLTools.encode("Usu�rios");
The result in str is "Usuários" -> Correct
On the other hand, if i use
String str1 = "Usu�rios";
String str = HTMLTools.encode(str1);
The result in str is "Usu�rios" -> WRONG!!!!
This is freaking me out!!! I'm going nuts. It's happened with almost ten different classes the same thing. Idon't know how to fix that.
Does anybody has any clue?
Thanks a lot to all.
I mean, if i use this:
String str = HTMLTools.encode("Usu�rios");
The result in str is "Usu�rios" -> Correct
On the other hand, if i use
String str1 = "Usu�rios";
String str = HTMLTools.encode(str1);
The result in str is "Usu�rios" -> WRONG!!!!Um... this may be an accident of encoding it for a web
page, but the value you assign to str1 appears to be
wrong?You're right. This is a problem of encoding for a web page. That's why i have to encode the html entities, but i'm having no success on that.
Similar Messages
-
Problem with SET GET parameters
Hi all,
I am facing a problem using SET and GET parameters.
There is a Z transaction(Dialog program) where some fields of screen are having parameter ID's. That transaction is designed to diaplay/change status of only one inspection lot at a time.
Now I need to call that transaction in a loop using BDC. I mean i need to update the status of multiple inspection lots(one after the other). Before calling the transaction I am using
SET PARAMETER ID 'QLS' FIELD lv_prueflos.
Unfortunately the transaction is only changing the first inspection lot. When I debugged I found that the screen field is changing in PAI. Even though in PBO it shows the next value, when it goes to PAI it is automatically changing to the first value(inspection lot).
Example: Inspection Lots : 4100000234
4100000235
4100000236
Now first time when the call transaction is being made the status of insp lot 4100000234 is changed. For the second time when insp lot 4100000235 is being passed in PBO ican see this. But the moment it enters PAI the screen field changes to 4100000234.
Could you pls help me in solving this issue.
Thanks,
AravindHi,
Problem with SET GET parameters
Regarding on your query. Follow this below link.
It will help you.
Re: Problem with Set parameter ID
Re: Problem in Set parameter ID
I Hope it will helps to you.
Regards,
Sekhar -
I am new to Java Programming.
I have a line of code that works and does what is supposed to.
faceData.getProfile("Lisa").removeFriend("Curtis");
If I assign the strings to variables such as-
String name = "Lisa";
String fName = "Curtis";
and then plug those into the same line of code, it does not work
faceData.getProfile(name).removeFriend(fName);
What could be causing the problem?
I even added some lines to print out what is stored in the variables to verify that they are what they should be, but for some reason the variables do not work while putting the strings in quotes does. Any ideas?I guarantee that something about your assertions are incorrect. Those variables are either not equal to the values you claim, or something else is going on. But it's not a problem with string variables versus string constants.
Edit: My best guess in lack of a real example from you, is that the strings in question have non-printable characters in them, such as trailing spaces or line feeds. -
Little problem with Strings.
I have an little problem with Strings, i make one comparision like this.
String nombre="Javier";
if( nombre.equalsIgnoreCase(output.getStringValue("CN_NOMBRESf",null)) )
Wich output.getStringValue("CN_NOMBRESf",null) is "Javier" too, because I display
this before and are equals.
What I do wrong?.
You are actually making your users key in things like
"\026"? Not very user-friendly, I would say. But
assuming that is the best way for you to get your
input, or if it's just you doing the input, the way to
change that 4-character string into the single
character that Java represents by '\026', you would
use a bit of code like this:char encoded =
(char)Integer.parseInt(substring(inputString, 1),
16);
DrClap has the right idea, except '\026' is octal, not hex. So change the radix from 16 to 8. Unicode is usually represented like '\u002A'. So it looks like you want:String s = "\\077";
System.out.println((char)Integer.parseInt(s.substring(1), 8));Now all you have to do is parse through the String and replace them, which I think shouldn't be too hard for you now :) -
Problem with String to Int conversion
Dear Friends,
Problem with String to Int conversion
I am having a column where most of the values are numeric. Only 4 values are non numeric.
I have replaces those non numeric values to numeric in order to maintain the data type.
CASE Grade.Grade WHEN 'E4' THEN '24' WHEN 'E3' THEN '23' WHEN 'E2' THEN '22' WHEN 'E1' THEN '21' ELSE Grade.Grade END
This comes the result as down
Grade
_0_
_1_
_10_
_11_
_12_
_13_
_14_
_15_
_16_
_17_
_18_
_19_
_2_
_20_
_21_
_22_
_23_
_24_
_3_
_4_
_5_
_6_
_7_
_8_
_9_
Refresh
Now I want to convert this value to numeric and do some calculation
So I changed the formula as below
cast (CASE Grade.Grade WHEN 'E4' THEN '24' WHEN 'E3' THEN '23' WHEN 'E2' THEN '22' WHEN 'E1' THEN '21' ELSE Grade.Grade END as INT)
Now I get the following error
View Display Error
_ Odbc driver returned an error (SQLExecDirectW)._
Error Details
Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
_State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 17001] Oracle Error code: 1722, message: ORA-01722: invalid number at OCI call OCIStmtFetch. [nQSError: 17012] Bulk fetch failed. (HY000)_
SQL Issued: SELECT cast ( CASE Grade.Grade WHEN 'E4' THEN '24' WHEN 'E3' THEN '23' WHEN 'E2' THEN '22' WHEN 'E1' THEN '21' ELSE Grade.Grade END as Int) saw0 FROM "Human Capital - Manpower Costing" WHERE LENGTH(CASE Grade.Grade WHEN 'E1' THEN '20' WHEN 'E2' THEN '21' WHEN 'E3' THEN '22' WHEN 'E4' THEN '23' ELSE Grade.Grade END) > 0 ORDER BY saw_0_
Refresh
Could anybody help me
Regards
Mustafa
Edited by: Musnet on Jun 29, 2010 5:42 AM
Edited by: Musnet on Jun 29, 2010 6:48 AMDear Kart,
This give me another hint, Yes you are right. There was one row which returns neither blank nor any value.
I have done the code like following and it works fine
Thanks again for your support
Regards
Code: cast (CASE (CASE WHEN Length(Grade.Grade)=0 THEN '--' ELSE Grade.Grade END) WHEN 'E4' THEN '24' WHEN 'E3' THEN '23' WHEN 'E2' THEN '22' WHEN 'E1' THEN '21' when '--' then '-1' ELSE Grade.Grade END as Int) -
Problem with String in a Vector
I'm making a small hangman game. And I got a problem with putting words in a Vector... This is the code... Can someone tell me what I'm doing wrong?
// First I define it.
Vector Words;
// Then add the words
Vector Words = new Vector();
Words.add(new String("HELLO"));
Words.add(new String("GOOD BYE"));
// When I try to get a string from the Vector I use this.
// The program compiles but when I try to run it I get NullPointerExeption here
W = (String) Words.elementAt(0);Not sure since I cant see all of your code but looks like this might be your problem:
// First I define it.
Vector Words; //<-- here you define a Vector named Words that is null
// Then add the words
Vector Words = new Vector(); //<-- here you define another vector named Words that holds a reference to a new Vector. This is a different reference than the one created above so you should probably remove the "Vector" part from the beginning of this line. Is this a local variable to a method and the one before is a global variable?
//Here you probably access the locally created Words vector which is initialized
Words.add(new String("HELLO"));
// When I try to get a string from the Vector I use this.
// The program compiles but when I try to run it I get NullPointerExeption here
W = (String) Words.elementAt(0); //<--and here my guess is that this statement is inside another method than the one with the local Words vector defined. Thus this one accesses the global Words Vector that is never initalized and is Null. And that gives you the NullPointerException.
So try changing the statement
Vector Words = new Vector();
to
Words = new Vector();
or just remove it totally and move the Vector creation to the place where you introduce the global variable.
Of course I might be totally wrong since I cant see all of your code but that is my guess.
Hope it helps,
-teka -
StringTokenizer class problem with strings in double quotes
Hello Technocrats,
I have a problem with tokenizing following string enclosed in (). (abc," India, Asia", computer engineer). My separator is ",", thus StringTokenizer class gives me 4 tokens namely abc, "India, Asia" and computer engineer. But I require that String in double quotes should be a single token. How to achieve this using StringTokenizer class? Or is there any other way?
Thanks in advance.Try
String[] str="abc,\" India, Asia\",computer engineer".split(",",1);
for(String s: str)
System.out.println(s);
}Thanks. -
Problem with passing date parameters in cursor
Is there any problem in passing date parameters and like clause as below
CURSOR eftcursor(start_date DATE, end_date DATE, where_clause varchar2) IS
select * from r_records
where created_date between start_date and end_date and description like where_clause;
and in the open statement
select to_date('01/06/2010 00:00:00', 'dd/mm/yyyy hh24:mi:ss') into startDate from dual;
select to_date('01/07/2010 00:00:00', 'dd/mm/yyyy hh24:mi:ss') into endDate from dual;
str := '%something%aaaaa%';
open eftcursor(startDate ,endDate , str);
Do i need to do any kind of conversion in the cursor where clause or when i am passing the parameter in open statement.Almora wrote:
Do i need to do any kind of conversion in the cursor where clause or when i am passing the parameter in open statement.No, your code looks correct -- ou're passing a date to the cursor.
You might consider whether you really need an explicit cursor though. An implicit cursor is easier to code and performs better. -
Problem with IN OUT parameters whiloe calling procedure from Form 6i
Hi
Could some help please? I have the following scenario.
I am calling a stored procedure from form 6i by pressing a button on the form. Procedure has two IN OUT parameters, and I am passing these two IN OUT parameters and have declared them the way they are declared passed to the procedure. But I get an error when calling that procedure with these IN OUT parameters. the procedure works fine if parameters are IN only. The error says:
PLS:00363: Expression '1' cannot be used as an assigment target.
NO matter I pass some value or leave it blank, I get the same error message persistenetly.
Please help.
Thanksmake sure you are calling your procedure with variables as parameters,
i.e.
l_v1 := 1 ;
l_v2 := 'hello world' ;
your_proc(l_v1, l_v2)
not
your_proc(1,'hello world') -
Problem with String parameters while Calling RFC enabled Function Module
Hi all,
I execute BAPI(RFC enabled Function Module) from my WebDynpro Application and retrieve data from R/3.
To fetch the data I pass few String parameters to BAPI from my Dynpro Application.
Now the problem is that while making this call, the parameters are automatically converted to UpperCase. And I want those parameters in the original case at R/3.
I am not able to find out whether this conversion occurs at Dynpro side or R/3 Side.
Should i configure my BAPI(RFC enabled Function Module) or is there some option on the Dynpro Side to preserve the Case of the String?
Please help me.
Thanks,
DarshilHi Darshil,
I'm not sure whether you have experience with ABAP or you are a Java Programmer, but we cannot set that flag permanently.
Now, if you are saying that the domains are marked with the <i>Lowercase</i> attribute, then it means that the final table field will be capable of holding Case Sensitive data.
I have a hunch that the case-conversion is happenning at the Web-Dynpro side. Or, the application logic converts the string to UPPERCASE explicitly.
By the way, which BAPI are you talking about ?
Regards,
Anand Mandalika. -
Problem with empty report parameters when passed to PL/SQL function
Hi,
We have come across what appears to be a bug in the JRC. When passing a report parameter to a PL/SQL function as a parameter, empty parameters are changed before being sent to the function. More specifically, an empty string "" ends up as the value "(')" in the PL/SQL function parameter. In our report we print the report parameters on the first page so we know that the parameters are OK before being passed to the database.
The problem exists for version 12.2.203, 12.2.204 and 12.2.205 of the JRC.
We have identified a workaround, but it is not exactly elegant: Before executing the report we modify all empty parameters ("") to " " . In the PL/SQL function, we trim all parameters before using them.
We call the function using a command object with a sql syntax like this example:
select * from table (qa_batch_release.get_qa_br('{?p_report_id}','{?p_reg_set_number}','{?p_cr_number}','{?p_change_id_decode}','{?p_country_id}','{?p_mfg_item_no}','{?p_4_no}','{?p_5_no}','{?p_7_no}'))
The PL/SQL function is a table returning function.
Best regards, ThorHi Kishore,
using #COLUMN_VALUE# would probably not make much sense, because normally a report has multiple columns and not just the numeric column which you want to verify if it's negative. But APEX will fire the template condition for each column, because the report template is a column cell template.
What you can do to make it more generic is to use for example
#CHECK_AMOUNT#
in the template and provide a not displayed column in your SQL statement which contains your value which is named CHECK_AMOUNT. For example:
SELECT NAME
, BALANCE
, BALANCE AS CHECK_AMOUNT
FROM XXX;Because this CHECK_AMOUNT column would be a generic name, you can use this template in all your reports as long as you provide this column.
Thope that helps
Patrick -
Problems with string tokenizer
okay heres my problem, i have a textarea displaying a program listing and i have to extract variables i.e public int something;
i have tried many different approaches but still the output is not what i was looking for. Can someone have a look at my code and check for mistakes that i cant find
public void createDataDictionary() {
if(fullText.equals("")) return;//do nothing if no text exists
String checkText = fileContents.getText();//store text area contents into string
String dataType = "";
String variable = "";
String accessModifier = "";
StringTokenizer str = new StringTokenizer(checkText," \n", true);
fileCheckBox.setText("");//clear file check box
while(str.hasMoreTokens()) {//loop while there are more tokens to tokenize
try{
checkText = str.nextToken();
//check for comments
if((checkText.startsWith("//")) || (checkText.equals("//")) ||
(checkText.startsWith("/**")) || (checkText.equals("/**")) ||
(checkText.startsWith("*")) || (checkText.equals("*"))) {
isComment = true;
if((checkText.equals("\n"))) isComment = false;
if(!isComment)
//check for access modifiers
if((checkText.equals("public")) || (checkText.equals("private")) ||
(checkText.equals("protected"))) {
accessModifier = checkText;
}else {
accessModifier = "";
//check for data types
if((checkText.equals("boolean")) || (checkText.equals("char")) ||
(checkText.startsWith("String")) || (checkText.equals("int"))) {
dataType = checkText;
variable = str.nextToken();//get variable expression
System.out.println(accessModifier + " " + dataType + " " + variable);
}catch(NoSuchElementException nsee) {//not enough tokens to complete operation
JOptionPane.showMessageDialog(null, "End of file");
return;//break from method
}here is sample text
private String seven = "help";
char five[];
// String here
//int found
public boolean okay
and here is the output
String
char
String
boolean
//note the space before each output
hope someone can help
thanx in advance1. Why do you check to see if the token starts with
//, /*, etc, etc. Later you check if the token
equals private, public, protected. It couldn't
equal if it started with a comment.if the token starts with a comment i dont want to read the rest of the line, so i set the isComment flag to true
2. I strongly suggest that you do it line by line.
Perhaps a string tokenizer that only tokenizes by
lines, then within that loop, another that tokenizes
by whitespace. i take it you mean putting the text into a bufferedreader and then using readLine()?? Bit new to string tokenization as you can possibly see
i managed to get the small test text to work more or less as i wanted but when ever i load a large code listing, the results are erratic to say the least
heres a section of this code
private int textNum = 0;/**Integer used to hold the text position within any given line*/
private int lineNum = 0;/**Integer used to hold the line number within any given file*/
static boolean application = false;/**Used to track if applet is ran from a browser or JAR file*/
static boolean fileOpened = false;/**Used to track if file has already been opened*/
static boolean isComment = false;
private char lCurve = '(';
private char rCurve = ')';
private char lCurly = '{';
private char rCurly = '}';
private char lSquare = '[';
private char rSquare = ']';
String fullText = "";and heres the output
public int textNum //should be private!!!!
int lineNum //missing private
boolean application //missing static
boolean fileOpened //missing static
boolean isComment //missing static
//all below missing private
char lCurve
char rCurve
char lCurly
char rCurly
char lSquare
char rSquare
String fullText //not there at all -
Hey All,
I have this string "Straw? No, too stupid a fad, I put soot on warts" I am going to test is this string is a palindrome. Thi string is, but I run it through my program it says it is not because of the "?" and ",". How to take that string run it through something like a buffer or tokenizer to take out those things like "?" , "," and anything else. In the end I would like to have to remove all those types of characters and just run a string into the like I want to above to me change to this
From:
Straw? No, too stupid a fad, I put soot on warts
To:
Straw No too stupid a fad I put soot on wartsYou have to place a space in the replace(' ',' ') or it will not work. Plus it does not work with that, it just adds a space to what ever characeter I just replaced. Would a Stringtokenizer with a space delimiter take of my problem?
-
Problems with string encoding - need the text content in char* format.
The problem is non ASCII-characters, which comes out as some sort of unicode I need to desipher.
Here's what I got:
A text frame object with the TextString "Agnartjørna"
I get the text content of this object into an ai::UnicodeString the following way:
AIErr
VMGetTextOfTextArt( AIArtHandle textArt, ai::UnicodeString &ucStr)
ASUnicode *textBuffer = NULL;
AITRY {
TextFrameRef ateTextRef;
AIX( sAITextFrame->GetATETextFrame( textArt, &ateTextRef));
ATE::ITextFrame ateText( ateTextRef);
ATE::ITextRange ateRange = ateText.GetTextRange( true);
ASInt32 textLen = ateRange.GetSize();
AIX( sSPBlocks->AllocateBlock( (textLen+2) * sizeof( ASUnicode), nil, (void**) &textBuffer));
ateRange.GetContents( textBuffer, (ASInt32) textLen+1);
/* trim off trailing newlines */
if ((textBuffer[textLen] == '\n') || (textBuffer[textLen] == '\r'))
textBuffer[textLen] = 0;
ucStr.clear();
ucStr.append( ai::UnicodeString( textBuffer, textLen));
sSPBlocks->FreeBlock( textBuffer);
textBuffer = NULL;
AIRETURN;
AICATCH {
if (textBuffer) sSPBlocks->FreeBlock( textBuffer);
AIPROPAGATE;
Now, the next step is to convert it into a form that I can use to call regexp.
Baiscally, I want to detect the ending "tjørna" (meaning small lake) on a map label, and apply a standard abbevriation "tj^a" (with "a" superscripted).
So the problem is to obtain the regexp pattern and the text content in same encoding. And since the regexp library is old *char based, I would like to convert the text content in to plain old *char.
Hence the following code:
static AIErr
VMAbbreviateTextArt( AIArtHandle textArt,
vmTextAbbrevEffectParams *params)
AITRY {
/* first obtain the text contents of the textArt */
ai::UnicodeString ucText;
const int kTextLen = 256;
char textContent[kTextLen];
AIX( VMGetTextOfTextArt( textArt, ucText));
ucText.as_Roman( textContent, kTextLen);
But textContent now has the value "Agnartj\xbfnna" (According to XCode),
which will not get a match on the pattern "tj([øe][rn])na\\" (with backslash matching the end of the string)
Any other ways to convert the textContent to a plain *char string?Thank you very much, your method will work fine. with
the "UTF-8" parameter the byte[].length is double,
cause every valid byte is preceeded by an -62, but I
will just filter the valid bytes into a new array.
Thanks again,
StefanActually what you need to do is to find the character encoding that your device expects, and then you can code your strings in Arabic.
That's the way Java does things; Strings and char values are always in UNICODE (see www.unicode.org) (which means \u600 to \u6ff for arabic) and uses a specified character encoding when translating these to and from a byte stream.
Each national character encoding has a name. Most of them are identical to ASCII for 0-127 and code their national characters in 128-255.
Find the encoding name for your display and, odds are, the JRE has it in the library.
BTW the character encoding ISO-8859-1 simply maps UNICODE characters 0-255 on to bytes. -
Problems with String[] Class Object
Hi guys,
I'm writing a web server who should invoke a method of a class when asked by a client.
My problem is that if the method that should be invoked has a String[] parameter the web server is unable to invoke it and throws a java.lang.IllegalArgumentException: argument type mismatch.
Useful pieces of code to understand are the following:
//create the Class[] to pass as parameter to the getMethod method
Class[] paramType = {String[].class};
//find the class "className" and create a new instance
Class c = Class.forName(className);
Object obj = c.newInstance();
//the getMethod should find in the class c the method called nameMeth
// having paramType (i.e. String[]) as parameter type...
Method theMethod = c.getMethod(nameMeth, paramType);
//here's the problematic call!!
theMethod.invoke(obj, params);I've noted that System.out.println(theMethod); prints the signature of the method with the parameter type java.lang.String[].
System.out.println(paramType[0]); instead prints [Ljava.lang.String;
I know that [L means that it is an array, so why do you think that I'm having an argument type mismatch?
Thank youI had no problems making that work.import java.lang.reflect.Method;
public final class StringArray {
public static final String CLASSNAME = "StringArray";
public static final String METHODNAME = "myMethod";
public static final String[] sa = { "a", "b"};
// automatic no-args constructor
public final void myMethod(String[] sa) {
for(int i=0;i<sa.length;++i) {
System.out.println(sa);
public static final void main(String[] arg) throws Exception {
//create the Class[] to pass as parameter to the getMethod method
Object[] params = { sa };
Class[] paramType = {sa.getClass()};
//find the class "className" and create a new instance
Class c = Class.forName(CLASSNAME);
Object obj = c.newInstance();
//the getMethod should find in the class c the method called nameMeth
// having paramType (i.e. String[]) as parameter type...
Method theMethod = c.getMethod(METHODNAME, paramType);
//here's the problematic call!!
theMethod.invoke(obj, params);
Maybe you are looking for
-
Hey SharePoint Fam, Trying to figure out easiest way to refresh main content DB every 5 months. Have QA & Staging environment that I'd like to refresh prod content db quarterly but not sure of correct process/steps to take in sql studio. Do i need
-
Mapping condition in multi mapping
Hi Experts, I have a 1:n multimapping where I have a mapping condition such that If the field is empty ith should throw an error. At the same time the n-1 records should be processed... The UDF i have used is if (a == "") throw new RuntimeException()
-
Req any examples of how to use a USB midi controller​/keyboards with Labview TIA
Req any examples of how to use a USB midi controller/keyboards with Labview TIA
-
Can you shift a region along to an 8th or 16th note?
I downloaded a MIDI file. Dragged it into the GB screen, no problem. Due to an error in the original, I found I needed to shift all regions to the level of the eighth note (quaver), but could only get them to the quarter note (crotchet). Is there som
-
I bought a new nokia6700 classic with unlimited internet.My problem is when i browse through diffrent video sites,some of them wants flash player to play specific video.So my question is is there any flash player software available for NOKIA6700 cla