如何解决linuxraid6不超过16t
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决linuxraid6不超过16t相关的知识,希望对你有一定的参考价值。
参考技术A 1.我们做raid超过16T的啊~不知道你们用的是什么raid卡(我们是lsi的),报的什么错误?2.如果只是分区不成功,那就只能用gpt来分区的,不能用传统的fdisk来分区的,fdisk不支持大分区
3.emc曾经跟我们说过,做raid不要做太多盘,一个增加raid计算压力,性能反而会下降,另一个增加raid内坏盘的概率
Java中的子字符串 - 长度不超过一个值
【中文标题】Java中的子字符串 - 长度不超过一个值【英文标题】:Substring in Java - length up to a value 【发布时间】:2012-10-08 23:37:27 【问题描述】:我正在尝试创建一个子字符串,它可以让我拥有最多 6 个姓氏的字母,但是当我找到少于 6 个字母的姓氏时,我在这里似乎会抛出一个错误,我一直在寻找几个小时对于没有成功的解决方案:/
id = firstName.substring (0,1).toLowerCase() + secondName.substring (0,6).toLowerCase();
System.out.print ("Here is your ID number: " + id);
这是.substring(0,6)
。我需要它最多 6 个字母,而不是正好 6 个。
错误:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 6
at java.lang.String.substring(Unknown Source)
at Test.main(Test.java:27)
【问题讨论】:
【参考方案1】:使用
secondName.substring (0, Math.min(6, secondName.length()))
【讨论】:
Math.min(6, secondName.length())
是6
如果secondName.length()>6
,则在其他情况下是secondName.length()
。
secondName.lenght()
获取字符串的长度。 Math.min()
获取最小值,这意味着如果字符串的长度小于 6,则返回该值。但是如果字符串的长度大于 6,则返回 6。
@RolfSmit - 问题是我需要它达到 6。【参考方案2】:
Try the Apache Commons StringUtils class.
// This operation is null safe.
org.apache.commons.lang.StringUtils.substring(secondName, 0, 6);
【讨论】:
感谢修复@ihebiheb【参考方案3】:我更喜欢
secondName.length > 6 ? secondName.substring(0, 6) : secondName
【讨论】:
【参考方案4】:这可以是一个解决方案: 检查姓氏的长度并据此决定
if (secondName.length() >6)
id = firstName.substring (0,1).toLowerCase() + secondName.substring (0,6).toLowerCase();
else
id = firstName.substring (0,1).toLowerCase() + secondName.substring (0,secondName.length()).toLowerCase();
System.out.print ("Here is your ID number: " + id);
【讨论】:
【参考方案5】:虽然您没有提供错误,但很容易发现问题:
id = firstName.substring (0,1).toLowerCase() + secondName.substring (0,6<secondName.length()?6:secondName.length).toLowerCase();
System.out.print ("Here is your ID number: " + id);
编辑这可能更具可读性:
id = firstName.substring (0,1).toLowerCase() + (6<secondName.length()?secondName.substring(0,6):secondName).toLowerCase();
System.out.print ("Here is your ID number: " + id);
【讨论】:
【参考方案6】:您将收到 java.lang.StringIndexOutOfBoundsException。
您需要确保长度始终小于字符串长度。类似的东西
int len = Math.min(6, secondName.length());
String id = firstName.substring (0,1).toLowerCase() + secondName.substring (0,len).toLowerCase();
【讨论】:
以上是关于如何解决linuxraid6不超过16t的主要内容,如果未能解决你的问题,请参考以下文章
centos 6 lvm 扩容超过16T的一个坑(unknown device)