Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从字符串代码名中删除一个字符_Java_String_Int - Fatal编程技术网

Java 从字符串代码名中删除一个字符

Java 从字符串代码名中删除一个字符,java,string,int,Java,String,Int,我试图从一个有数字的字符串中删除一个%符号,大约80%。我正在尝试获取数字并放弃%并将其转换为整数。我尝试了: String sPorcentage = findECor1().getSelectedItem().toString(); int porcentage = Integer.parseInt(sPorcentage.replaceAll("%", "")); zona1.moveAllCurtains(porcentage); 它可以工作,但控制台显示: 697: error: c

我试图从一个有数字的字符串中删除一个%符号,大约80%。我正在尝试获取数字并放弃%并将其转换为整数。我尝试了:

String sPorcentage = findECor1().getSelectedItem().toString();
int porcentage = Integer.parseInt(sPorcentage.replaceAll("%", ""));
zona1.moveAllCurtains(porcentage);
它可以工作,但控制台显示:

697: error: cannot find symbol
    [javac]         int porcentage = Integer.parseInt(sPorcentage.replaceAll("%", ""));
    [javac]                                                      ^
    [javac]   symbol:   method replaceAll(String,String)
    [javac]   location: variable sPorcentage of type String

BUILD FAILED
谢谢你的帮助

int porcentage = Integer.parseInt(findECor2().getSelectedItem().toString().replaceAll("%", ""));
应该有用。但是,粘贴的错误表明未定义变量sPorcentage

试着像在中一样定义它

        String sPorcentage = "80%";
        int porcentage = Integer.parseInt(sPorcentage.replaceAll("%", ""));
        System.out.println(porcentage);

我想你可以用下面的代码代替你的。我想这符合你的目的:

String str = "80%";
int perc=Integer.parseInt(str.split("%")[0]);
System.out.println(perc);

上面的代码段将以“80”作为输出,也将以整数变量形式输出。

使用
StringUtils.replaceAll(sPorcentage,“%”,“”)

Shai已经回答了这个问题,codename one不支持某些字符串函数,如replaceAll、split。但是您可以使用他们提供的StringUtil类。StringUtil.replaceAll()将执行您想要的操作

StringUtil.replaceAll(String source, String pattern, String replace);
source-字符串源

模式-要在源中替换的字符串

替换-替换字符串


这应该可以正常工作。

。为什么错误消息中引用的行与您输入的(您声称的)不同?您正在
findECor2().getSelectedItem()
上执行
tostring()
。。这让我相信返回的结果不是字符串。那么它怎么能有一个char
%
符号呢。@Rahul调用
toString
后,它很可能是一个字符串。你有什么版本的JDK?当你说“它工作”时,你是什么意思?您的代码有一个生成错误,但仍然有效?我尝试过,但现在编译错误是698:错误:找不到符号[javac]int-procentage=Integer.parseInt(sPorcentage.split(“%”[0]);[javac]^[javac]symbol:methodsplit(String)[javac]位置:String类型的变量sPorcentage,但是这段代码对我来说很好。你能看到共享的实际场景吗?替换没有问题,转义%没有任何意义,你只是破坏了OP的代码。OP从某个地方读取变量-他不能只是重新定义它。这就是我说的“sPorcentage未定义”的意思。