java读取excel文件的内容,获取的字符串前面多了一个问号(如"?2012-05-01")是啥原因,怎么解决呢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java读取excel文件的内容,获取的字符串前面多了一个问号(如"?2012-05-01")是啥原因,怎么解决呢相关的知识,希望对你有一定的参考价值。

这个好像是隐藏字符,通过输入输出流就会显示成“?”。

你可以把获取到的数据转成String,然后用replaceAll()把所有的?替换成空就可以了
参考技术A 一般是你的excel文件的该单元格里面多了未知符号,你可以把该单元格的文本copy出去到文本编辑器里面去看,把?去掉后再黏贴进去

java中怎么获取部分文本

比如: 我的名字是,路人甲 。。 我要获取逗号前面的文本内容(即 我的名字是),用getText我只会获取全部内容额。。

先获取全部内容然后再截取。


有两种方法。

String content = "我的名字是,路人甲 ";
content.split(",")[0];
content.subString(0,content.lastIndexOf(","));

上面这两种方法都可以。

追问

还有点问题唉= =, 我弄的 是 1+2 ,获取+号前的1,结果用double给a赋值,显示double无法转换string...

追答

如果你是逗号前面和后面的都要获取到的话,那就用split方法。

String content = "我的名字是,路人甲 ";
String first = content.split(",")[0];
String last = content.split(",")[1];

first是“我的名字是”

last是“路人甲”


split是按照你给的规则将字符串拆分成数组。具体拆出来几个,那就看满足条件的有几个。

比如

String content = "look book";
String[] arr = content.split("o");
//这时候拆出来就有三个
//arr[0]的值是"l";
//arr[1]的值是"k b";
//arr[2]的值是"k";

你去查一下API就知道split的用法了,很简单的。


还有,这个split只能String类型使用。所以你要是想获取1+2中的1的话先将这个1+2转换成String类型的"1+2"吧。如果是double类型的话这个表达式的值就变成3了。

参考技术A getText()后用split方法

split
public String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split
方法。因此,所得数组中不包括结尾空字符串。例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果:Regex

结果

:
"boo", "and", "foo"

o
"b", "", ":and:f"

参数:
regex - 定界正则表达式
返回:
字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的
抛出:
PatternSyntaxException
- 如果正则表达式的语法无效
从以下版本开始:
1.4
另请参见:
Pattern追问

举个例子呗,我不会用你说的这个split方法唉

追答

比如你的String a是ab cd ef gh ij
String a []=a.split(" ")//以空格拆分,正则表达式我这个不标准

a.split(",")//以逗号拆分

以上是关于java读取excel文件的内容,获取的字符串前面多了一个问号(如"?2012-05-01")是啥原因,怎么解决呢的主要内容,如果未能解决你的问题,请参考以下文章

java 字节流 多个文件写入一个文件 为啥前面写入的内容会被覆盖了

java用poi读取excel文件时怎么获取每个单元格的列宽?

java读取excel文件,怎么取日期列?

Java中如何读取excel文件内容并且将内容以表格的形式显示在窗体里?

java poi怎么获取excel单元格的内容

Java读取Excel中数据时怎么判断Excel中的最后一行