有没有办法创建某种类型的For循环来用空格分隔字符串? 到目前为止,我可以显示一个字符串,并查找它有多少个字符。
import java.util.Scanner;
import java.lang.String;
public class Word{
public static void main(String args[])
{
Scanner scan = new Scanner(System.in);
int b;
String word;
System.out.println ("Enter a word: ");
word = scan.next();
b = word.length();
System.out.println (word);
System.out.println (b);
}
}
答案 0 :(得分:7)
作为Scanner
的替代方案,您可以执行以下操作:
String[] parts = line.split(" ");
for (String part : parts) {
//do something interesting here
}
答案 1 :(得分:1)
在String类中使用split()
方法,如下所示:
String line = "a series of words";
String[] words = line.split("\\s+");
它会在String[]
中返回line
个字,对于上面的例子,它会产生这个:
{"a", "series", "of", "words"}
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以使用
String.Split to split the sentence into an array of words.. something like
string[] words = word.split(" ");
foreach(string s in words)
{
System.out.println(s);
System.out.println("\n");
}
答案 4 :(得分:0)
这是未经测试的,但我觉得这是一次学习练习,所以这应该让你走上正确的道路。在for循环中,您可以将单词的每个字符作为子字符串访问,并在末尾连接一个空格(也可以在单词的末尾)。
string word2 ="";
for (int i = 0; i<word.length-1;i++) {
word2 = word.substring(i, i+1)+" ";
}
答案 5 :(得分:0)
我正在使用以下代码:
static void Main(string[] args)
{
byte[] inputFile = new byte[] { 0x81, 0x82, 0x83, 0x09, 0xc0, 0x6a, 0xd0 };
IEnumerable<byte[]> ebcdicLines = SplitBytes(inputFile);
Encoding encoding = CodePagesEncodingProvider.Instance.GetEncoding(1142); // Codepage 1142 is nordic EBCDIC
IEnumerable<string> lines = ebcdicLines.Select(l => encoding.GetString(l)); // Convert each line to string (unicode)
foreach (var line in lines)
{
Console.WriteLine(line);
}
}
static IEnumerable<byte[]> SplitBytes(byte[] bytes)
{
int currentIndex = 0;
int newlineIndex = Array.IndexOf(bytes, (byte)0x09, currentIndex);
while (newlineIndex > -1)
{
yield return bytes.Skip(currentIndex).Take(newlineIndex - currentIndex).ToArray();
currentIndex = newlineIndex + 1;
newlineIndex = Array.IndexOf(bytes, (byte)0x09, currentIndex);
}
yield return bytes.Skip(currentIndex).ToArray();
}