Этот код не компилируется, потому что метод подстроки можно вызывать только для строки, а не для массива строк, если я не ошибаюсь. В приведенном выше коде отметка времени объявляется как массив строк с 40 индексами.
Также в этом коде вы запрашиваете ввод данных у пользователя и присваиваете ему имя в этой строке:
name = sc.nextLine();
и затем вы пытаетесь заменить то, что пользователь только что набрал, на то, что хранится в метке времени в следующей строке, которая является ничем, и стирает все, что было сохранено в имени:
name = timestamp.substring(0,20);
И снова это не сработало бы, потому что отметка времени представляет собой массив из 40 строк вместо одной конкретной строки. Для вызова подстроки это должна быть только одна конкретная строка.
Я знаю, что, вероятно, не очень помогает то, что вы пытаетесь сделать, но, надеюсь, это поможет вам понять, почему это не работает.
Если вы можете ответить тем, что вы пытаетесь сделать, с конкретным примером, я могу помочь вам в дальнейшем. Например, допустим, вы хотели, чтобы пользователь ввел свое имя «Джон Смит», а затем вы хотели разделить это имя и фамилию на две разные строковые переменные или массив строк. Чем конкретнее вы можете быть с тем, что хотите сделать, тем лучше. Удачи:)
НАЧАТЬ РЕДАКТИРОВАТЬ
Хорошо, вот несколько вещей, которые вы можете попробовать, если я правильно понимаю, что вы делаете.
//Since each index will only be holding one character,
//it makes sense to use char array instead of a string array.
//This next line creates a char array with 40 empty indexes.
char[] timestamp = new char[40];
//The variable name to store user input as a string.
String name;
//message to user to input name
System.out.println("Pls enter a name and surname");
//Create a scanner to get input from keyboard, and store user input in the name variable
Scanner sc = new Scanner(System.in);
name = sc.nextLine();
//if you wanted the length of the char array to be the same
//as the characters in name, it would make more sense to declare it here like this
//instead of declaring it above.
char[] timestamp = new char[name.length()];
//For loop, loops through each character in the string and stores in
//indexes of timestamp char array.
for(int i=0; i<name.length;i++)
{
timestamp[i] = name.charAt(i);
}
Еще одна вещь, которую вы могли бы сделать, если бы хотели разделить имя и фамилию, это разделить ее следующим образом.
String[] seperateName = name.split(" ");
Эта строка разделит строку, когда найдет пробел, и поместит ее в индекс в массиве seperateName. Поэтому, если имя было «Джон Смит», sperateName [0] = Джон и seperateName [1] = Смит.