不要用字符串Java替换

时间:2017-02-06 11:32:01

标签: java string replace char

我打算删除最后六个字符的程序 这是我的代码

Please write  six number
    123456
    String: S4P6W7M522SC3OXX55K3NN77666N34M2
    Result 6N34M2
    New String: S4P6W7M522SC3OXX55K3NN77666N34M2

//显示输出

    New String: S4P6W7M522SC3OXX55K3NN7766123456

应该是

"noImplicitAny": false

我不知道为什么替换是不正确的

2 个答案:

答案 0 :(得分:1)

你的问题是你使用的是7个字符的数组,如果用这个数组检查你构建的String的长度(export function copyYearData() { let data=''; ['1','2','3'].forEach((item)=>{ if(item === '2'){ data = item; } }) if(data != ''){ return{ type: 'COPY_DATA', payload: data, } } }; ),你将得到7个字符,所以它不能匹配你试图替换的子字符串只有6个字符。 (你在结尾处有0的字符(值,而不是数字)

使用6的数组

kod

防止出现此问题。

如果您的字符串短于32个字符,这有点冒险。你可以简单地从最后读取数组,只读取6个字符(或直到你到达索引0)

但是你也可以在字符串中的其他地方拥有最后6个字符序列。这也将替换第一个序列(如果使用 char[] chars = new char[6]; )或仅替换当前代码的第一个序列

使用子字符串删除最后6个字符会更简单,更安全。

只需要确保你的字符串至少为6个字符,诀窍是使用Math.max:

replaceAll()
如果字符串要短,

napis.substring(0, Math.max(napis.length() - 6, 0)) + numberString; 将只给0。

答案 1 :(得分:0)

这是解决方案的简单方法。

value