我试图将char与以下输入示例分开:
C450.00 C30 P100
我想将“C”或“P”这样的字母分开,这样我就可以单独使用它们, 以及以“int”分隔的“450.00”,“30”和“100”。最简单的方法是什么?
答案 0 :(得分:1)
如果String
始终是那种格式:
char ch = yourString.charAt(0);
Double d = Double.valueOf(yourString.substring(1, yourString.length()));
注意: 我使用了Double
,因为.
中有点String
。如果您没有任何小数,则可以轻松地从double
转换为int
。但这取决于你的需要。
答案 1 :(得分:1)
您可以将带有空格的String拆分为分隔符。然后在字符串的每个部分使用子字符串。现在你有了C和450.0作为Stings。最后将子字符串的第二部分转换为整数,然后就完成了。
分裂:
String[] parts = string.split(" ");
到substring:
String first = parts[0].substring(0, 1);
String second = parts[0].substring(1);
答案 2 :(得分:0)
假设你知道你在给定的字符串中寻找什么(例如,你知道你正在寻找C字符),你可以使用正则表达式模式:https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
答案 3 :(得分:0)
您可以使用此库org.apache.monsons.lang3. StringUtils http://commons.apache.org/proper/commons-lang/download_lang.cgi
public static String [] split(String str,String separatorChars)
String[] res = StringUtils.split("C450.00 C30 P100", "CP ");
for (String r : res) {
System.out.println(r);
}
答案 4 :(得分:0)
我假设单独的数字'总是采用这种格式:
C130
P90
V2.0
即单个字母后跟一个数字(可能带有浮点数)。
String input = "C450.00 C30 P100";
// First split the string by a space
String[] parts = input.split(" ");
for (String part : parts) {
// Get the character from the string
char ch = part.charAt(0);
// Get the remains of the string and convert it to a double
double number = Double.parseDouble(part.substring(1));
// Then do something with 'ch' and 'number'
}
如果单独的部分可能包含两个或更多字母,例如AC130
,那么你需要另一种方法:
String input = "AC130 AG36 P90";
String[] parts = input.split(" ");
for (String part : parts) {
/* Do some regular expression magic. */
}
请参阅http://www.vogella.com/tutorials/JavaRegularExpressions/article.html。
答案 5 :(得分:0)
这里是一段代码:
public static void main(String[] args) {
String a = "C450.00 C30 P100";
String letters = "";
String numbers = "";
for (int i = 0; i < a.length(); i++) {
if ((a.charAt(i) + "").matches("\\d|\\.| ")) {
numbers += a.charAt(i);
} else {
letters += a.charAt(i);
}
}
String[] strArray = numbers.split(" ");
int[] numberArray = new int[strArray.length];
for (int i = 0; i < strArray.length; i++) {
numberArray[i] = (int) Double.parseDouble(strArray[i]);
System.out.println(numberArray[i]);
}
System.out.println(letters);
}
结果为numberArray
,其中包含所有数字作为整数
和letters
,这是一个包含所有字母的字符串。