Java 如何使用字符串函数将字符显示到字符串的特定索引?
我将我的字符串定义为 text1:text2:text3:text4:text5 我想得到输出作为 text1:text2:text3 使用字符串方法 我尝试过使用lastIndexOf,然后使用子字符串,然后再次使用lastIndexOf。 我想通过两次调用lastIndexOf来避免这三个步骤。Java 如何使用字符串函数将字符显示到字符串的特定索引?,java,string,Java,String,我将我的字符串定义为 text1:text2:text3:text4:text5 我想得到输出作为 text1:text2:text3 使用字符串方法 我尝试过使用lastIndexOf,然后使用子字符串,然后再次使用lastIndexOf。 我想通过两次调用lastIndexOf来避免这三个步骤。 有更好的方法来实现这一点吗?您可以通过运行循环来迭代字符串的字符,从index=0到index=lastIndexOf'3'。代码如下: String s = "text1:text2:text3:
有更好的方法来实现这一点吗?您可以通过运行循环来迭代字符串的字符,从index=0到index=lastIndexOf'3'。代码如下:
String s = "text1:text2:text3:text4:text5";
for(int i = 0; i < = s.lastIndexOf('3'); i++)
System.out.print(s.charAt(i));
您可以通过运行一个循环来迭代从index=0到index=lastIndexOf'3'的字符串的字符来实现这一点。代码如下:
String s = "text1:text2:text3:text4:text5";
for(int i = 0; i < = s.lastIndexOf('3'); i++)
System.out.print(s.charAt(i));
您可以使用Java拆分方法:
然后直接或使用for循环生成输出:
// directly
System.out.println(text1 + ":" + text2 + ":" + text3);
// for-loop. Just enter, how many elements you want to display.
for(int i = 0; i < 3; i++){
System.out.println(text[i] + " ");
}
使用此方法的优点是,您的输入和输出可能会稍微复杂一些,因为您可以控制文字的打印顺序
例如:
以尤达大师为例
他说话的方式很奇怪,经常把句子结构弄混。当他自我介绍时,他说的是错误的!意识:尤达大师,我的名字是
现在,你想创建一个通用的翻译器,它——当然——在从一个物种到另一个物种的翻译过程中修复这些错误
接收输入字符串并将其分为几个部分:
String string = "Master:Yoda:my:name:is"
String[] text = string.split(":");
String jediTitle = text[0];
String lastName = text[1];
String posessivePronoun = text[2];
String noun = text[3];
String linkingVerb = text[4];
现在,数组文本按您输入的顺序包含句子。现在,您的翻译人员可以分析结构并更正它:
String correctSentenceStructure = posessivePronoun + " " + noun + " " + linkingVerb + " " + jediTitle + " " + lastName;
System.out.println(correctSentenceStructure);
输出:
工作中的翻译器可能是迈向银河系的另一步。您可以使用Java split方法:
然后直接或使用for循环生成输出:
// directly
System.out.println(text1 + ":" + text2 + ":" + text3);
// for-loop. Just enter, how many elements you want to display.
for(int i = 0; i < 3; i++){
System.out.println(text[i] + " ");
}
使用此方法的优点是,您的输入和输出可能会稍微复杂一些,因为您可以控制文字的打印顺序
例如:
以尤达大师为例
他说话的方式很奇怪,经常把句子结构弄混。当他自我介绍时,他说的是错误的!意识:尤达大师,我的名字是
现在,你想创建一个通用的翻译器,它——当然——在从一个物种到另一个物种的翻译过程中修复这些错误
接收输入字符串并将其分为几个部分:
String string = "Master:Yoda:my:name:is"
String[] text = string.split(":");
String jediTitle = text[0];
String lastName = text[1];
String posessivePronoun = text[2];
String noun = text[3];
String linkingVerb = text[4];
现在,数组文本按您输入的顺序包含句子。现在,您的翻译人员可以分析结构并更正它:
String correctSentenceStructure = posessivePronoun + " " + noun + " " + linkingVerb + " " + jediTitle + " " + lastName;
System.out.println(correctSentenceStructure);
输出:
一个能工作的翻译可能是迈向银河系的又一步。你可以试试:
String test = "text1:text2:text3:text4:text5";
String splitted = text.split(":")
String result = "";
for (int i = 0; i <3; i++) {
result += splitted[i] + ":"
}
result = result.substring(0, result.length() -1)
你可以试试:
String test = "text1:text2:text3:text4:text5";
String splitted = text.split(":")
String result = "";
for (int i = 0; i <3; i++) {
result += splitted[i] + ":"
}
result = result.substring(0, result.length() -1)
正则表达式可用于标识字符串的正确部分:
private static Pattern PATTERN = Pattern.compile("([^:]*:){2}[^:]*(?=:|$)");
public static String find(String input) {
Matcher m = PATTERN.matcher(input);
return m.find() ? m.group() : null;
}
或者,不要在每次调用lastIndexOf之间使用子字符串,而是使用限制索引范围的lastIndexOf版本:
public static String find(String input, int colonCount) {
int lastIndex = input.length();
while (colonCount > 0) {
lastIndex = input.lastIndexOf(':', lastIndex-1);
colonCount--;
}
return lastIndex >= 0 ? input.substring(0, lastIndex) : null;
}
请注意,此处colonCount是字符串中遗漏的:的数目。可以使用正则表达式来标识字符串的正确部分:
private static Pattern PATTERN = Pattern.compile("([^:]*:){2}[^:]*(?=:|$)");
public static String find(String input) {
Matcher m = PATTERN.matcher(input);
return m.find() ? m.group() : null;
}
或者,不要在每次调用lastIndexOf之间使用子字符串,而是使用限制索引范围的lastIndexOf版本:
public static String find(String input, int colonCount) {
int lastIndex = input.length();
while (colonCount > 0) {
lastIndex = input.lastIndexOf(':', lastIndex-1);
colonCount--;
}
return lastIndex >= 0 ? input.substring(0, lastIndex) : null;
}
请注意,此处colonCount是字符串中遗漏的:的编号。可以尝试这一行:s.substring0,s.lastIndexOf'3'+1
完整示例:
package testing.project;
public class Main {
public static void main(String[] args) {
String s = "text1:text2:text3:text4:text5";
System.out.println(s.substring(0, s.lastIndexOf('3')+1));
}
}
输出:
text1:text2:text3
也许可以试试这一行,s.substring0,s.lastIndexOf'3'+1
完整示例:
package testing.project;
public class Main {
public static void main(String[] args) {
String s = "text1:text2:text3:text4:text5";
System.out.println(s.substring(0, s.lastIndexOf('3')+1));
}
}
输出:
text1:text2:text3
你能进一步解释你的问题吗?不清楚你想解决什么问题,因为你给出的例子太抽象,不够具体,人们无法给出一个好的答案。你能进一步解释你的问题吗?现在还不清楚你想解决什么问题,因为你给出的例子太抽象,不够具体,人们无法给出一个好的答案。