我有一个格式为AB123的字符串。我想在AB和123之间进行拆分,以便AB123成为AB123。字符串的内容可以不同,但是格式保持不变。有办法吗?
答案 0 :(得分:8)
紧跟您提供的最新信息(2个字母然后3个数字):
myString.subString(0, 2) + " " + myString.subString(2)
这是什么:您将输入字符串myString
分割为第二个字符,并在此位置添加一个空格。
答案 1 :(得分:4)
说明:\ D表示非数字,\ d表示正则表达式中的数字,我在正则表达式中使用了三元运算将宪章拆分为数字。
String string = "AB123";
String[] split = string.split("(?<=\\D)(?=\\d)");
System.out.println(split[0]+" "+split[1]);
答案 2 :(得分:1)
尝试
Method Dummy()
{
RestAssured.baseURI ="http://mydummyURL";
RequestSpecification request = RestAssured.given();
JSONObject requestParams = new JSONObject();
requestParams.put("id", "THAILAND"); //Issue is with this code
request.header("Content-Type", "application/json");
request.body(requestParams.toJSONString());
Response response = request.post("/EndPoint");
}
希望这会有所帮助
答案 3 :(得分:1)
尽管我会亲自使用@RakeshMothukur's answer中提供的方法,因为稍后当字母或数字的计数增加/减少时它也可以使用,因此我想提供一种额外的方法来在两个字母之间插入空格,并且三位数:
String str = "AB123";
StringBuilder sb = new StringBuilder(str);
sb.insert(2, " "); // Insert a space at 0-based index 2; a.k.a. after the first 2 characters
String result = sb.toString(); // Convert the StringBuilder back to a String
答案 4 :(得分:1)
您在这里。我用很简单的方式写了它,以使事情变得清楚。
它的作用是:接受用户输入后,它将字符串转换为Char数组,并检查单个字符是否为INT或非INT。 在每次迭代中,它都会将数据类型与上一个字符进行比较,并进行相应打印。
替代解决方案
1)使用ASCII范围(难度=简单)
2)重写方法并一次检查2个变量。 (难度=中级)
import org.omg.CORBA.INTERNAL;
import java.io.InputStreamReader;
import java.util.*;
import java.io.BufferedReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char[] s = br.readLine().toCharArray();
int prevflag, flag = 0;
for (int i = 0; i < s.length; i++) {
int a = Character.getNumericValue(s[i]);
String b = String.valueOf(s[i]);
prevflag = flag;
flag = checktype(a, b);
if ((prevflag == flag) || (i == 0))
System.out.print(s[i]);
else
System.out.print(" " + s[i]);
}
}
public static int checktype(int x, String y) {
int flag = 0;
if (String.valueOf(x).equals(y))
flag = 1; // INT
else
flag = 2; // non INT
return flag;
}
}
答案 5 :(得分:0)
我在等待编译结束之前才开始工作,所以把一个稍微过度设计的示例与基本错误检查和测试放在一起。
import java.text.ParseException;
import java.util.LinkedList;
public class Main {
static public class ParsedData {
public final String prefix;
public final Integer number;
public ParsedData(String _prefix, Integer _number) {
prefix = _prefix;
number = _number;
}
@Override
public String toString() {
return prefix + "\t" + number.toString();
}
}
static final String TEST_DATA[] = {"AB123", "JX7272", "FX402", "ADF123", "JD3Q2", "QB778"};
public static void main(String[] args) {
parseDataArray(TEST_DATA);
}
public static ParsedData[] parseDataArray(String[] inputs) {
LinkedList<ParsedData> results = new LinkedList<ParsedData>();
for (String s : TEST_DATA) {
try {
System.out.println("Parsing: " + s);
if (s.length() != 5) throw new ParseException("Input Length incorrect: " + s.length(), 0);
String _prefix = s.substring(0, 2);
Integer _num = Integer.parseInt(s.substring(2));
results.add(new ParsedData(_prefix, _num));
} catch (ParseException | NumberFormatException e) {
System.out.printf("\"%s\", %s\n", s, e.toString());
}
}
return results.toArray(new ParsedData[results.size()]);
}
}