java将字符串按10个字符平均分割放到集合中
时间: 2023-03-31 16:04:21 浏览: 105
可以使用如下代码实现:
```java
public static List<String> splitString(String str, int len) {
List<String> list = new ArrayList<>();
int strLen = str.length();
int count = (strLen + len - 1) / len;
for (int i = ; i < count; i++) {
int start = i * len;
int end = Math.min(start + len, strLen);
list.add(str.substring(start, end));
}
return list;
}
```
调用示例:
```java
String str = "abcdefghijklmnopqrstuvwxyz";
List<String> list = splitString(str, 10);
System.out.println(list);
```
输出结果:
```
[abcdefghij, klmnopqrst, uvwxyz]
```
相关问题
Java如何将字符串“#1 87.05 #2 86.58 #3 86.11 #4 85.64 #5 85.60 #6 85.98 #7 86.36”的内容分割成#1 87.05然后按key=#1 value=87.05放到map集合中?
Java可以使用字符串的toCharArray()方法将字符串转换为字符数组,然后使用for循环遍历字符数组,将每个字符转换为ASCII码,再将ASCII码转换为二进制字符串,最后将所有二进制字符串拼接起来即可得到该字符串的二进制表示。
我有一个十几MB大小的字符串,以“|”为分隔符存储了地址文件,请问如何使用Java处理这批数据,并放入map集合里
在Java中,你可以按照以下步骤处理这个十几MB大小的字符串,将其分割成地址并存入Map集合:
1. **创建`Map<String, String>`**:
首先,你需要创建一个键值对的Map,比如`HashMap`,因为它的查找速度较快,适合这种数据结构。
```java
import java.util.HashMap;
import java.util.Map;
Map<String, String> addressMap = new HashMap<>();
```
2. **字符串分割**:
使用`String.split()`方法,传入`"|"`作为分隔符,将字符串拆分成一个数组。然后遍历数组,将每个地址元素依次添加到Map中,注意地址元素通常是两个部分组成的,如`key|value`。
```java
String[] addresses = yourLargeString.split("\\|");
for (String address : addresses) {
String[] keyValue = address.split(":", 2); // 假设地址是以":"分隔的两部分
if (keyValue.length == 2) { // 检查是否有两部分
addressMap.put(keyValue[0], keyValue[1]);
} else {
System.err.println("Invalid address format: " + address);
}
}
```
3. **异常处理**:
为了提高健壮性,记得处理可能出现的异常,例如如果某个地址不符合预期格式。
4. **性能优化**:
如果数据量非常大,考虑分批处理或使用流(Stream API),避免一次性加载整个字符串到内存中。
```java
// 使用Stream API
List<String[]> allAddresses = IntStream.range(0, addresses.length)
.mapToObj(i -> addresses[i])
.map(this::splitAddress)
.collect(Collectors.toList());
// 然后一次性添加到map中
allAddresses.forEach(addresses -> addressMap.put(addresses[0], addresses[1]));
```
其中,`splitAddress`是一个内部方法用于进一步分割地址。
阅读全文